From 2928600a967d9a7882b147f8855f981ab47c7e5c Mon Sep 17 00:00:00 2001 From: Aren Babikian Date: Wed, 10 Mar 2021 20:08:46 +0000 Subject: [PATCH 01/25] Adds regression tests that involve non-recursive function calls --- regression/contracts/function-calls-01/main.c | 15 ++++++++++++ .../contracts/function-calls-01/test-enf.desc | 9 ++++++++ .../contracts/function-calls-01/test-rep.desc | 9 ++++++++ .../contracts/function-calls-02-1/main.c | 23 +++++++++++++++++++ .../function-calls-02-1/test-enf.desc | 13 +++++++++++ .../function-calls-02-1/test-mix.desc | 9 ++++++++ .../function-calls-02-1/test-rep.desc | 9 ++++++++ regression/contracts/function-calls-02/main.c | 22 ++++++++++++++++++ .../contracts/function-calls-02/test-enf.desc | 13 +++++++++++ .../contracts/function-calls-02/test-mix.desc | 9 ++++++++ .../contracts/function-calls-02/test-rep.desc | 9 ++++++++ 11 files changed, 140 insertions(+) create mode 100644 regression/contracts/function-calls-01/main.c create mode 100644 regression/contracts/function-calls-01/test-enf.desc create mode 100644 regression/contracts/function-calls-01/test-rep.desc create mode 100644 regression/contracts/function-calls-02-1/main.c create mode 100644 regression/contracts/function-calls-02-1/test-enf.desc create mode 100644 regression/contracts/function-calls-02-1/test-mix.desc create mode 100644 regression/contracts/function-calls-02-1/test-rep.desc create mode 100644 regression/contracts/function-calls-02/main.c create mode 100644 regression/contracts/function-calls-02/test-enf.desc create mode 100644 regression/contracts/function-calls-02/test-mix.desc create mode 100644 regression/contracts/function-calls-02/test-rep.desc diff --git a/regression/contracts/function-calls-01/main.c b/regression/contracts/function-calls-01/main.c new file mode 100644 index 00000000000..09ca17fc558 --- /dev/null +++ b/regression/contracts/function-calls-01/main.c @@ -0,0 +1,15 @@ +int f1(int *x1) + __CPROVER_requires(*x1 > 1 && *x1 < 10000) + __CPROVER_ensures(__CPROVER_return_value == *x1 + 1) +{ + return *x1 + 1; +} + +int main() +{ + int p; + __CPROVER_assume(p > 1 && p < 10000); + f1(&p); + + return 0; +} diff --git a/regression/contracts/function-calls-01/test-enf.desc b/regression/contracts/function-calls-01/test-enf.desc new file mode 100644 index 00000000000..b2d6674d02a --- /dev/null +++ b/regression/contracts/function-calls-01/test-enf.desc @@ -0,0 +1,9 @@ +CORE +main.c +--enforce-all-contracts +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the postconditions. diff --git a/regression/contracts/function-calls-01/test-rep.desc b/regression/contracts/function-calls-01/test-rep.desc new file mode 100644 index 00000000000..4775f50bbb6 --- /dev/null +++ b/regression/contracts/function-calls-01/test-rep.desc @@ -0,0 +1,9 @@ +CORE +main.c +--replace-all-calls-with-contracts +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the preconditions. diff --git a/regression/contracts/function-calls-02-1/main.c b/regression/contracts/function-calls-02-1/main.c new file mode 100644 index 00000000000..a6aeae94a8e --- /dev/null +++ b/regression/contracts/function-calls-02-1/main.c @@ -0,0 +1,23 @@ +int f1(int *x1) + __CPROVER_requires(*x1 > 1 && *x1 < 10000) + __CPROVER_ensures(__CPROVER_return_value == *x1 + 3) +{ + int loc = *x1 + 1; + return f2(&loc) + 1; +} + +int f2(int *x2) + __CPROVER_requires(*x2 > 2 && *x2 < 10001) + __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) +{ + return *x2 + 1 ; +} + +int main() +{ + int p; + __CPROVER_assume(p > 1 && p < 10000); + f1(&p); + + return 0; +} \ No newline at end of file diff --git a/regression/contracts/function-calls-02-1/test-enf.desc b/regression/contracts/function-calls-02-1/test-enf.desc new file mode 100644 index 00000000000..589e5fcce21 --- /dev/null +++ b/regression/contracts/function-calls-02-1/test-enf.desc @@ -0,0 +1,13 @@ +KNOWNBUG +main.c +--enforce-all-contracts +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the postconditions of both f1 and f2. + +Known bug: +Enforce flag not handled correctly for function calls within functions. +This bug is fixed in PR #5538. diff --git a/regression/contracts/function-calls-02-1/test-mix.desc b/regression/contracts/function-calls-02-1/test-mix.desc new file mode 100644 index 00000000000..f0c8b6818c0 --- /dev/null +++ b/regression/contracts/function-calls-02-1/test-mix.desc @@ -0,0 +1,9 @@ +CORE +main.c +--enforce-contract f1 --replace-call-with-contract f2 +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the preconditions of f2 (called from f1) and of the postcondition of f1. diff --git a/regression/contracts/function-calls-02-1/test-rep.desc b/regression/contracts/function-calls-02-1/test-rep.desc new file mode 100644 index 00000000000..c3b2440cb07 --- /dev/null +++ b/regression/contracts/function-calls-02-1/test-rep.desc @@ -0,0 +1,9 @@ +CORE +main.c +--replace-all-calls-with-contracts +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the preconditions of f1 (called from main). diff --git a/regression/contracts/function-calls-02/main.c b/regression/contracts/function-calls-02/main.c new file mode 100644 index 00000000000..560695c0856 --- /dev/null +++ b/regression/contracts/function-calls-02/main.c @@ -0,0 +1,22 @@ +int f1(int *x1) + __CPROVER_requires(*x1 > 1 && *x1 < 10000) + __CPROVER_ensures(__CPROVER_return_value == *x1 + 2) +{ + return f2(x1) + 1; +} + +int f2(int *x2) + __CPROVER_requires(*x2 > 1 && *x2 < 10000) + __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) +{ + return *x2 + 1 ; +} + +int main() +{ + int p; + __CPROVER_assume(p > 1 && p < 10000); + f1(&p); + + return 0; +} diff --git a/regression/contracts/function-calls-02/test-enf.desc b/regression/contracts/function-calls-02/test-enf.desc new file mode 100644 index 00000000000..dbb61c76c65 --- /dev/null +++ b/regression/contracts/function-calls-02/test-enf.desc @@ -0,0 +1,13 @@ +KNOWNBUG +main.c +--enforce-all-contracts +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the postconditions of both f1 and f2. + +Known bug: +Enforce flag not handled correctly for function calls within functions. +This bug is fixed in PR #5583. diff --git a/regression/contracts/function-calls-02/test-mix.desc b/regression/contracts/function-calls-02/test-mix.desc new file mode 100644 index 00000000000..f0c8b6818c0 --- /dev/null +++ b/regression/contracts/function-calls-02/test-mix.desc @@ -0,0 +1,9 @@ +CORE +main.c +--enforce-contract f1 --replace-call-with-contract f2 +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the preconditions of f2 (called from f1) and of the postcondition of f1. diff --git a/regression/contracts/function-calls-02/test-rep.desc b/regression/contracts/function-calls-02/test-rep.desc new file mode 100644 index 00000000000..c3b2440cb07 --- /dev/null +++ b/regression/contracts/function-calls-02/test-rep.desc @@ -0,0 +1,9 @@ +CORE +main.c +--replace-all-calls-with-contracts +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the preconditions of f1 (called from main). From 3f2d21ec3c3b639c3483f7a8faf79f4ad5692b73 Mon Sep 17 00:00:00 2001 From: Aren Babikian Date: Wed, 10 Mar 2021 20:19:08 +0000 Subject: [PATCH 02/25] Fixes PR number --- regression/contracts/function-calls-02/test-enf.desc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regression/contracts/function-calls-02/test-enf.desc b/regression/contracts/function-calls-02/test-enf.desc index dbb61c76c65..589e5fcce21 100644 --- a/regression/contracts/function-calls-02/test-enf.desc +++ b/regression/contracts/function-calls-02/test-enf.desc @@ -10,4 +10,4 @@ This confirms the accuracy of the postconditions of both f1 and f2. Known bug: Enforce flag not handled correctly for function calls within functions. -This bug is fixed in PR #5583. +This bug is fixed in PR #5538. From 1b13a25591974f0f920e4b63a15b953f1b359e68 Mon Sep 17 00:00:00 2001 From: Aren Babikian Date: Wed, 10 Mar 2021 20:59:57 +0000 Subject: [PATCH 03/25] Adds regression tests that involve recursive function calls --- .../contracts/function-calls-03-1/main.c | 24 +++++++++++++++++++ .../function-calls-03-1/test-enf.desc | 18 ++++++++++++++ regression/contracts/function-calls-03/main.c | 24 +++++++++++++++++++ .../contracts/function-calls-03/test-enf.desc | 19 +++++++++++++++ .../contracts/function-calls-03/test-mix.desc | 12 ++++++++++ .../contracts/function-calls-03/test-rep.desc | 12 ++++++++++ 6 files changed, 109 insertions(+) create mode 100644 regression/contracts/function-calls-03-1/main.c create mode 100644 regression/contracts/function-calls-03-1/test-enf.desc create mode 100644 regression/contracts/function-calls-03/main.c create mode 100644 regression/contracts/function-calls-03/test-enf.desc create mode 100644 regression/contracts/function-calls-03/test-mix.desc create mode 100644 regression/contracts/function-calls-03/test-rep.desc diff --git a/regression/contracts/function-calls-03-1/main.c b/regression/contracts/function-calls-03-1/main.c new file mode 100644 index 00000000000..f0df8a62097 --- /dev/null +++ b/regression/contracts/function-calls-03-1/main.c @@ -0,0 +1,24 @@ +int f1(int *x1) + __CPROVER_requires(*x1 > 0 && *x1 < 20) + __CPROVER_ensures(__CPROVER_return_value == *x1 + 2) +{ + return f2(x1) + 1; +} + +int f2(int *x2) + __CPROVER_requires(*x2 >= 0 && *x2 < 20) + __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) +{ + if (*x2 < 1) return -1; //Notice the change for the base case + int loc = *x2 - 1; + return f2(&loc) + 1; +} + +int main() +{ + int p ; + __CPROVER_assume(p > 0 && p < 20); + f1(&p); + + return 0; +} diff --git a/regression/contracts/function-calls-03-1/test-enf.desc b/regression/contracts/function-calls-03-1/test-enf.desc new file mode 100644 index 00000000000..ec16ceefc94 --- /dev/null +++ b/regression/contracts/function-calls-03-1/test-enf.desc @@ -0,0 +1,18 @@ +KNOWNBUG +main.c +--enforce-all-contracts +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +-- +This confirms the accuracy of the postconditions of both f1 and f2. + +Test should fail: +The postcondition of f2 is incorrect, considering the recursion particularity. + +Recursion: +The base case for the recursive call to f2 provides different behavior than the common case (given the pre-conditions). + +Known bug 2: +This test requires the "--unwind 20 --unwinding-assertions" flag for the cbmc call in "chain.sh", which is currently not handled. diff --git a/regression/contracts/function-calls-03/main.c b/regression/contracts/function-calls-03/main.c new file mode 100644 index 00000000000..4f466a3b891 --- /dev/null +++ b/regression/contracts/function-calls-03/main.c @@ -0,0 +1,24 @@ +int f1(int *x1) + __CPROVER_requires(*x1 > 0 && *x1 < 20) + __CPROVER_ensures(__CPROVER_return_value == *x1 + 2) +{ + return f2(x1) + 1; +} + +int f2(int *x2) + __CPROVER_requires(*x2 >= 0 && *x2 < 20) + __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) +{ + if (*x2 < 1) return 1; + int loc = *x2 - 1; + return f2(&loc) + 1; +} + +int main() +{ + int p ; + __CPROVER_assume(p > 0 && p < 20); + f1(&p); + + return 0; +} diff --git a/regression/contracts/function-calls-03/test-enf.desc b/regression/contracts/function-calls-03/test-enf.desc new file mode 100644 index 00000000000..0ee5122b46b --- /dev/null +++ b/regression/contracts/function-calls-03/test-enf.desc @@ -0,0 +1,19 @@ +KNOWNBUG +main.c +--enforce-all-contracts +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the postconditions of both f1 and f2. + +Recursion: +The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). + +Known bug 1: +Enforce flag not handled correctly for function calls within functions. +This bug is fixed in PR #5538. + +Known bug 2: +This test requires the "--unwind 20 --unwinding-assertions" flag for the cbmc call in "chain.sh", which is currently not handled. diff --git a/regression/contracts/function-calls-03/test-mix.desc b/regression/contracts/function-calls-03/test-mix.desc new file mode 100644 index 00000000000..06afa685d2a --- /dev/null +++ b/regression/contracts/function-calls-03/test-mix.desc @@ -0,0 +1,12 @@ +CORE +main.c +--enforce-contract f1 --replace-call-with-contract f2 +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the preconditions of f2 (called from f1) and of the postcondition of f1. + +Recursion: +The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). diff --git a/regression/contracts/function-calls-03/test-rep.desc b/regression/contracts/function-calls-03/test-rep.desc new file mode 100644 index 00000000000..6c3eba4ffbe --- /dev/null +++ b/regression/contracts/function-calls-03/test-rep.desc @@ -0,0 +1,12 @@ +CORE +main.c +--replace-all-calls-with-contracts +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the preconditions of f1 (called from main). + +Recursion: +The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). From 08660bfffef810960315ef3ff672c42ce4e9cf2e Mon Sep 17 00:00:00 2001 From: Aren Babikian Date: Wed, 10 Mar 2021 21:00:47 +0000 Subject: [PATCH 04/25] Adds regression tests that involve alternate recursive function calls --- .../contracts/function-calls-04-1/main.c | 31 +++++++++++++++++++ .../function-calls-04-1/test-enf.desc | 18 +++++++++++ regression/contracts/function-calls-04/main.c | 31 +++++++++++++++++++ .../contracts/function-calls-04/test-enf.desc | 19 ++++++++++++ .../function-calls-04/test-mix-1.desc | 12 +++++++ .../function-calls-04/test-mix-2.desc | 18 +++++++++++ .../contracts/function-calls-04/test-rep.desc | 12 +++++++ 7 files changed, 141 insertions(+) create mode 100644 regression/contracts/function-calls-04-1/main.c create mode 100644 regression/contracts/function-calls-04-1/test-enf.desc create mode 100644 regression/contracts/function-calls-04/main.c create mode 100644 regression/contracts/function-calls-04/test-enf.desc create mode 100644 regression/contracts/function-calls-04/test-mix-1.desc create mode 100644 regression/contracts/function-calls-04/test-mix-2.desc create mode 100644 regression/contracts/function-calls-04/test-rep.desc diff --git a/regression/contracts/function-calls-04-1/main.c b/regression/contracts/function-calls-04-1/main.c new file mode 100644 index 00000000000..a5b160f3f87 --- /dev/null +++ b/regression/contracts/function-calls-04-1/main.c @@ -0,0 +1,31 @@ +int f1(int *x1) + __CPROVER_requires(*x1 > 0 && *x1 < 20) + __CPROVER_ensures(__CPROVER_return_value == *x1 + 2) +{ + return f2_out(x1) + 1; +} + +int f2_out(int *x2) + __CPROVER_requires(*x2 >= 0 && *x2 < 20) + __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) +{ + if (*x2 < 1) return -1; //Notice the change for the base case + int loc2 = *x2-1; + return f2_in(&loc2) + 1; +} + +int f2_in(int *x2) + __CPROVER_requires(*x2 >= 0 && *x2 < 19) + __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) +{ + return f2_out(x2); +} + +int main() +{ + int p ; + __CPROVER_assume(p > 0 && p < 20); + f1(&p); + + return 0; +} diff --git a/regression/contracts/function-calls-04-1/test-enf.desc b/regression/contracts/function-calls-04-1/test-enf.desc new file mode 100644 index 00000000000..4a3da990e58 --- /dev/null +++ b/regression/contracts/function-calls-04-1/test-enf.desc @@ -0,0 +1,18 @@ +KNOWNBUG +main.c +--enforce-all-contracts +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +-- +This confirms the accuracy of the postconditions of f1, f2_out and f2_in. + +Test should fail: +The postcondition of f2 is incorrect, considering the recursion particularity. + +Recursion: +The base case for the recursive call to f2 provides different behavior than the general case (given the pre-conditions). + +Known bug: +This test requires the "--unwind 20 --unwinding-assertions" flag for the cbmc call in "chain.sh", which is currently not handled. diff --git a/regression/contracts/function-calls-04/main.c b/regression/contracts/function-calls-04/main.c new file mode 100644 index 00000000000..d9876b4e89c --- /dev/null +++ b/regression/contracts/function-calls-04/main.c @@ -0,0 +1,31 @@ +int f1(int *x1) + __CPROVER_requires(*x1 > 0 && *x1 < 20) + __CPROVER_ensures(__CPROVER_return_value == *x1 + 2) +{ + return f2_out(x1) + 1; +} + +int f2_out(int *x2) + __CPROVER_requires(*x2 >= 0 && *x2 < 20) + __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) +{ + if (*x2 < 1) return 1; + int loc2 = *x2-1; + return f2_in(&loc2) + 1; +} + +int f2_in(int *x2) + __CPROVER_requires(*x2 >= 0 && *x2 < 19) + __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) +{ + return f2_out(x2); +} + +int main() +{ + int p ; + __CPROVER_assume(p > 0 && p < 20); + f1(&p); + + return 0; +} diff --git a/regression/contracts/function-calls-04/test-enf.desc b/regression/contracts/function-calls-04/test-enf.desc new file mode 100644 index 00000000000..1969af0f946 --- /dev/null +++ b/regression/contracts/function-calls-04/test-enf.desc @@ -0,0 +1,19 @@ +KNOWNBUG +main.c +--enforce-all-contracts +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the postconditions of f1, f2_out and f2_in. + +Recursion: +The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). + +Known bug 1: +Enforce flag not handled correctly for function calls within functions. +This bug is fixed in PR #5538. + +Known bug 2: +This test requires the "--unwind 20 --unwinding-assertions" flag for the cbmc call in "chain.sh", which is currently not handled. diff --git a/regression/contracts/function-calls-04/test-mix-1.desc b/regression/contracts/function-calls-04/test-mix-1.desc new file mode 100644 index 00000000000..c7e87562c3c --- /dev/null +++ b/regression/contracts/function-calls-04/test-mix-1.desc @@ -0,0 +1,12 @@ +CORE +main.c +--enforce-contract f1 --replace-call-with-contract f2_out +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the preconditions of f2_out (called from f1) and of the postconditions of f1. + +Recursion: +The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). diff --git a/regression/contracts/function-calls-04/test-mix-2.desc b/regression/contracts/function-calls-04/test-mix-2.desc new file mode 100644 index 00000000000..01430c7905e --- /dev/null +++ b/regression/contracts/function-calls-04/test-mix-2.desc @@ -0,0 +1,18 @@ +KNOWNBUG +main.c +--enforce-contract f1 --enforce-contract f2_out --replace-call-with-contract f2_in +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the preconditions of f2_in (called from f2_out) and of the postconditions of f1 and of f2_out. + +Recursion +(1) This test checks the mutualy recursive f2_out and f2-in functions by enforcing f2_out and replacing the internal f2_in call with its contract. +(2) This test does not require unwinding. +(3) The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). + +Known bug: +Enforce flag not handled correctly for function calls within functions. +This bug is fixed in PR #5538. diff --git a/regression/contracts/function-calls-04/test-rep.desc b/regression/contracts/function-calls-04/test-rep.desc new file mode 100644 index 00000000000..6c3eba4ffbe --- /dev/null +++ b/regression/contracts/function-calls-04/test-rep.desc @@ -0,0 +1,12 @@ +CORE +main.c +--replace-all-calls-with-contracts +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +-- +This confirms the accuracy of the preconditions of f1 (called from main). + +Recursion: +The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). From 7166cd592b35d42aadd0eced76ba01290d111c1a Mon Sep 17 00:00:00 2001 From: Aren Babikian Date: Thu, 11 Mar 2021 04:21:29 +0000 Subject: [PATCH 05/25] Applies clang-format to the addedfiles --- regression/contracts/function-calls-01/main.c | 3 +-- regression/contracts/function-calls-02-1/main.c | 10 ++++------ regression/contracts/function-calls-02/main.c | 10 ++++------ regression/contracts/function-calls-03-1/main.c | 11 +++++------ regression/contracts/function-calls-03/main.c | 11 +++++------ regression/contracts/function-calls-04-1/main.c | 16 +++++++--------- regression/contracts/function-calls-04/main.c | 16 +++++++--------- 7 files changed, 33 insertions(+), 44 deletions(-) diff --git a/regression/contracts/function-calls-01/main.c b/regression/contracts/function-calls-01/main.c index 09ca17fc558..26f8445d361 100644 --- a/regression/contracts/function-calls-01/main.c +++ b/regression/contracts/function-calls-01/main.c @@ -1,5 +1,4 @@ -int f1(int *x1) - __CPROVER_requires(*x1 > 1 && *x1 < 10000) +int f1(int *x1) __CPROVER_requires(*x1 > 1 && *x1 < 10000) __CPROVER_ensures(__CPROVER_return_value == *x1 + 1) { return *x1 + 1; diff --git a/regression/contracts/function-calls-02-1/main.c b/regression/contracts/function-calls-02-1/main.c index a6aeae94a8e..43a06e3ef3b 100644 --- a/regression/contracts/function-calls-02-1/main.c +++ b/regression/contracts/function-calls-02-1/main.c @@ -1,21 +1,19 @@ -int f1(int *x1) - __CPROVER_requires(*x1 > 1 && *x1 < 10000) +int f1(int *x1) __CPROVER_requires(*x1 > 1 && *x1 < 10000) __CPROVER_ensures(__CPROVER_return_value == *x1 + 3) { int loc = *x1 + 1; return f2(&loc) + 1; } -int f2(int *x2) - __CPROVER_requires(*x2 > 2 && *x2 < 10001) +int f2(int *x2) __CPROVER_requires(*x2 > 2 && *x2 < 10001) __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) { - return *x2 + 1 ; + return *x2 + 1; } int main() { - int p; + int p; __CPROVER_assume(p > 1 && p < 10000); f1(&p); diff --git a/regression/contracts/function-calls-02/main.c b/regression/contracts/function-calls-02/main.c index 560695c0856..9c698ec912d 100644 --- a/regression/contracts/function-calls-02/main.c +++ b/regression/contracts/function-calls-02/main.c @@ -1,20 +1,18 @@ -int f1(int *x1) - __CPROVER_requires(*x1 > 1 && *x1 < 10000) +int f1(int *x1) __CPROVER_requires(*x1 > 1 && *x1 < 10000) __CPROVER_ensures(__CPROVER_return_value == *x1 + 2) { return f2(x1) + 1; } -int f2(int *x2) - __CPROVER_requires(*x2 > 1 && *x2 < 10000) +int f2(int *x2) __CPROVER_requires(*x2 > 1 && *x2 < 10000) __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) { - return *x2 + 1 ; + return *x2 + 1; } int main() { - int p; + int p; __CPROVER_assume(p > 1 && p < 10000); f1(&p); diff --git a/regression/contracts/function-calls-03-1/main.c b/regression/contracts/function-calls-03-1/main.c index f0df8a62097..ed53e1e5d31 100644 --- a/regression/contracts/function-calls-03-1/main.c +++ b/regression/contracts/function-calls-03-1/main.c @@ -1,22 +1,21 @@ -int f1(int *x1) - __CPROVER_requires(*x1 > 0 && *x1 < 20) +int f1(int *x1) __CPROVER_requires(*x1 > 0 && *x1 < 20) __CPROVER_ensures(__CPROVER_return_value == *x1 + 2) { return f2(x1) + 1; } -int f2(int *x2) - __CPROVER_requires(*x2 >= 0 && *x2 < 20) +int f2(int *x2) __CPROVER_requires(*x2 >= 0 && *x2 < 20) __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) { - if (*x2 < 1) return -1; //Notice the change for the base case + if(*x2 < 1) + return -1; //Notice the change for the base case int loc = *x2 - 1; return f2(&loc) + 1; } int main() { - int p ; + int p; __CPROVER_assume(p > 0 && p < 20); f1(&p); diff --git a/regression/contracts/function-calls-03/main.c b/regression/contracts/function-calls-03/main.c index 4f466a3b891..203ffd82a70 100644 --- a/regression/contracts/function-calls-03/main.c +++ b/regression/contracts/function-calls-03/main.c @@ -1,22 +1,21 @@ -int f1(int *x1) - __CPROVER_requires(*x1 > 0 && *x1 < 20) +int f1(int *x1) __CPROVER_requires(*x1 > 0 && *x1 < 20) __CPROVER_ensures(__CPROVER_return_value == *x1 + 2) { return f2(x1) + 1; } -int f2(int *x2) - __CPROVER_requires(*x2 >= 0 && *x2 < 20) +int f2(int *x2) __CPROVER_requires(*x2 >= 0 && *x2 < 20) __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) { - if (*x2 < 1) return 1; + if(*x2 < 1) + return 1; int loc = *x2 - 1; return f2(&loc) + 1; } int main() { - int p ; + int p; __CPROVER_assume(p > 0 && p < 20); f1(&p); diff --git a/regression/contracts/function-calls-04-1/main.c b/regression/contracts/function-calls-04-1/main.c index a5b160f3f87..36136e08bd2 100644 --- a/regression/contracts/function-calls-04-1/main.c +++ b/regression/contracts/function-calls-04-1/main.c @@ -1,21 +1,19 @@ -int f1(int *x1) - __CPROVER_requires(*x1 > 0 && *x1 < 20) +int f1(int *x1) __CPROVER_requires(*x1 > 0 && *x1 < 20) __CPROVER_ensures(__CPROVER_return_value == *x1 + 2) { return f2_out(x1) + 1; } -int f2_out(int *x2) - __CPROVER_requires(*x2 >= 0 && *x2 < 20) +int f2_out(int *x2) __CPROVER_requires(*x2 >= 0 && *x2 < 20) __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) { - if (*x2 < 1) return -1; //Notice the change for the base case - int loc2 = *x2-1; + if(*x2 < 1) + return -1; //Notice the change for the base case + int loc2 = *x2 - 1; return f2_in(&loc2) + 1; } -int f2_in(int *x2) - __CPROVER_requires(*x2 >= 0 && *x2 < 19) +int f2_in(int *x2) __CPROVER_requires(*x2 >= 0 && *x2 < 19) __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) { return f2_out(x2); @@ -23,7 +21,7 @@ int f2_in(int *x2) int main() { - int p ; + int p; __CPROVER_assume(p > 0 && p < 20); f1(&p); diff --git a/regression/contracts/function-calls-04/main.c b/regression/contracts/function-calls-04/main.c index d9876b4e89c..f3aced38c72 100644 --- a/regression/contracts/function-calls-04/main.c +++ b/regression/contracts/function-calls-04/main.c @@ -1,21 +1,19 @@ -int f1(int *x1) - __CPROVER_requires(*x1 > 0 && *x1 < 20) +int f1(int *x1) __CPROVER_requires(*x1 > 0 && *x1 < 20) __CPROVER_ensures(__CPROVER_return_value == *x1 + 2) { return f2_out(x1) + 1; } -int f2_out(int *x2) - __CPROVER_requires(*x2 >= 0 && *x2 < 20) +int f2_out(int *x2) __CPROVER_requires(*x2 >= 0 && *x2 < 20) __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) { - if (*x2 < 1) return 1; - int loc2 = *x2-1; + if(*x2 < 1) + return 1; + int loc2 = *x2 - 1; return f2_in(&loc2) + 1; } -int f2_in(int *x2) - __CPROVER_requires(*x2 >= 0 && *x2 < 19) +int f2_in(int *x2) __CPROVER_requires(*x2 >= 0 && *x2 < 19) __CPROVER_ensures(__CPROVER_return_value == *x2 + 1) { return f2_out(x2); @@ -23,7 +21,7 @@ int f2_in(int *x2) int main() { - int p ; + int p; __CPROVER_assume(p > 0 && p < 20); f1(&p); From 01444b7eeef30ebfa85004ebeb0d35f3e85f9fa2 Mon Sep 17 00:00:00 2001 From: Aren Babikian Date: Thu, 11 Mar 2021 18:43:21 +0000 Subject: [PATCH 06/25] Assesses PR comments and adds handling for loop unwinding --- regression/contracts/chain.sh | 14 +++++++++++--- .../contracts/function-calls-01/test-enf.desc | 5 ++++- .../contracts/function-calls-01/test-rep.desc | 5 ++++- .../contracts/function-calls-02-1/test-enf.desc | 7 +++++-- .../contracts/function-calls-02-1/test-mix.desc | 6 +++++- .../contracts/function-calls-02-1/test-rep.desc | 8 +++++++- .../contracts/function-calls-02/test-enf.desc | 7 +++++-- .../contracts/function-calls-02/test-mix.desc | 6 +++++- .../contracts/function-calls-02/test-rep.desc | 8 +++++++- .../contracts/function-calls-03-1/test-enf.desc | 13 +++++++------ .../contracts/function-calls-03/test-enf.desc | 14 +++++++------- .../contracts/function-calls-03/test-mix.desc | 6 +++++- .../contracts/function-calls-03/test-rep.desc | 8 +++++++- .../contracts/function-calls-04-1/test-enf.desc | 14 ++++++++------ .../contracts/function-calls-04/test-enf.desc | 15 ++++++++------- .../contracts/function-calls-04/test-mix-1.desc | 9 ++++++++- .../contracts/function-calls-04/test-mix-2.desc | 8 ++++++-- .../contracts/function-calls-04/test-rep.desc | 9 ++++++++- 18 files changed, 117 insertions(+), 45 deletions(-) diff --git a/regression/contracts/chain.sh b/regression/contracts/chain.sh index a22dc195bdc..b79aae965bb 100755 --- a/regression/contracts/chain.sh +++ b/regression/contracts/chain.sh @@ -11,6 +11,14 @@ name=${*:$#} name=${name%.c} args=${*:5:$#-5} +if [[ "$args" != *" _ "* ]] +then + args_inst=$args + args_cbmc="" +else + args_inst="${args%%" _ "*}" + args_cbmc="${args#*" _ "}" +fi if [[ "${is_windows}" == "true" ]]; then $goto_cc "${name}.c" @@ -20,10 +28,10 @@ else fi rm -f "${name}-mod.gb" -$goto_instrument ${args} "${name}.gb" "${name}-mod.gb" +$goto_instrument ${args_inst} "${name}.gb" "${name}-mod.gb" if [ ! -e "${name}-mod.gb" ] ; then cp "$name.gb" "${name}-mod.gb" -elif echo $args | grep -q -- "--dump-c" ; then +elif echo $args_inst | grep -q -- "--dump-c" ; then mv "${name}-mod.gb" "${name}-mod.c" if [[ "${is_windows}" == "true" ]]; then @@ -36,4 +44,4 @@ elif echo $args | grep -q -- "--dump-c" ; then rm "${name}-mod.c" fi $goto_instrument --show-goto-functions "${name}-mod.gb" -$cbmc "${name}-mod.gb" +$cbmc "${name}-mod.gb" ${args_cbmc} diff --git a/regression/contracts/function-calls-01/test-enf.desc b/regression/contracts/function-calls-01/test-enf.desc index b2d6674d02a..1b660f56d87 100644 --- a/regression/contracts/function-calls-01/test-enf.desc +++ b/regression/contracts/function-calls-01/test-enf.desc @@ -6,4 +6,7 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the postconditions. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted diff --git a/regression/contracts/function-calls-01/test-rep.desc b/regression/contracts/function-calls-01/test-rep.desc index 4775f50bbb6..d28bfcfb20b 100644 --- a/regression/contracts/function-calls-01/test-rep.desc +++ b/regression/contracts/function-calls-01/test-rep.desc @@ -6,4 +6,7 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the preconditions. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | asserted | assumed diff --git a/regression/contracts/function-calls-02-1/test-enf.desc b/regression/contracts/function-calls-02-1/test-enf.desc index 589e5fcce21..817b7b9c8d8 100644 --- a/regression/contracts/function-calls-02-1/test-enf.desc +++ b/regression/contracts/function-calls-02-1/test-enf.desc @@ -6,8 +6,11 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the postconditions of both f1 and f2. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted + f2 | assumed | asserted Known bug: Enforce flag not handled correctly for function calls within functions. -This bug is fixed in PR #5538. diff --git a/regression/contracts/function-calls-02-1/test-mix.desc b/regression/contracts/function-calls-02-1/test-mix.desc index f0c8b6818c0..edd25ca30be 100644 --- a/regression/contracts/function-calls-02-1/test-mix.desc +++ b/regression/contracts/function-calls-02-1/test-mix.desc @@ -6,4 +6,8 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the preconditions of f2 (called from f1) and of the postcondition of f1. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted + f2 | asserted | assumed diff --git a/regression/contracts/function-calls-02-1/test-rep.desc b/regression/contracts/function-calls-02-1/test-rep.desc index c3b2440cb07..707cdf87fc8 100644 --- a/regression/contracts/function-calls-02-1/test-rep.desc +++ b/regression/contracts/function-calls-02-1/test-rep.desc @@ -6,4 +6,10 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the preconditions of f1 (called from main). +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | asserted | assumed + f2 | n/a | n/a + +Note: the call to f2 does not occur because the call to f1 is replaced by its contracts. diff --git a/regression/contracts/function-calls-02/test-enf.desc b/regression/contracts/function-calls-02/test-enf.desc index 589e5fcce21..817b7b9c8d8 100644 --- a/regression/contracts/function-calls-02/test-enf.desc +++ b/regression/contracts/function-calls-02/test-enf.desc @@ -6,8 +6,11 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the postconditions of both f1 and f2. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted + f2 | assumed | asserted Known bug: Enforce flag not handled correctly for function calls within functions. -This bug is fixed in PR #5538. diff --git a/regression/contracts/function-calls-02/test-mix.desc b/regression/contracts/function-calls-02/test-mix.desc index f0c8b6818c0..edd25ca30be 100644 --- a/regression/contracts/function-calls-02/test-mix.desc +++ b/regression/contracts/function-calls-02/test-mix.desc @@ -6,4 +6,8 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the preconditions of f2 (called from f1) and of the postcondition of f1. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted + f2 | asserted | assumed diff --git a/regression/contracts/function-calls-02/test-rep.desc b/regression/contracts/function-calls-02/test-rep.desc index c3b2440cb07..707cdf87fc8 100644 --- a/regression/contracts/function-calls-02/test-rep.desc +++ b/regression/contracts/function-calls-02/test-rep.desc @@ -6,4 +6,10 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the preconditions of f1 (called from main). +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | asserted | assumed + f2 | n/a | n/a + +Note: the call to f2 does not occur because the call to f1 is replaced by its contracts. diff --git a/regression/contracts/function-calls-03-1/test-enf.desc b/regression/contracts/function-calls-03-1/test-enf.desc index ec16ceefc94..859a593e234 100644 --- a/regression/contracts/function-calls-03-1/test-enf.desc +++ b/regression/contracts/function-calls-03-1/test-enf.desc @@ -1,18 +1,19 @@ -KNOWNBUG +CORE main.c ---enforce-all-contracts +--enforce-all-contracts _ --unwind 20 --unwinding-assertions ^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- -- -This confirms the accuracy of the postconditions of both f1 and f2. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted + f2 | assumed | asserted Test should fail: The postcondition of f2 is incorrect, considering the recursion particularity. Recursion: The base case for the recursive call to f2 provides different behavior than the common case (given the pre-conditions). - -Known bug 2: -This test requires the "--unwind 20 --unwinding-assertions" flag for the cbmc call in "chain.sh", which is currently not handled. diff --git a/regression/contracts/function-calls-03/test-enf.desc b/regression/contracts/function-calls-03/test-enf.desc index 0ee5122b46b..fdbd93aacd0 100644 --- a/regression/contracts/function-calls-03/test-enf.desc +++ b/regression/contracts/function-calls-03/test-enf.desc @@ -1,19 +1,19 @@ KNOWNBUG main.c ---enforce-all-contracts +--enforce-all-contracts _ --unwind 20 --unwinding-assertions ^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the postconditions of both f1 and f2. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted + f2 | assumed | asserted Recursion: The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). -Known bug 1: +Known bug: Enforce flag not handled correctly for function calls within functions. -This bug is fixed in PR #5538. - -Known bug 2: -This test requires the "--unwind 20 --unwinding-assertions" flag for the cbmc call in "chain.sh", which is currently not handled. diff --git a/regression/contracts/function-calls-03/test-mix.desc b/regression/contracts/function-calls-03/test-mix.desc index 06afa685d2a..ffc11785616 100644 --- a/regression/contracts/function-calls-03/test-mix.desc +++ b/regression/contracts/function-calls-03/test-mix.desc @@ -6,7 +6,11 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the preconditions of f2 (called from f1) and of the postcondition of f1. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted + f2 | asserted | assumed Recursion: The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). diff --git a/regression/contracts/function-calls-03/test-rep.desc b/regression/contracts/function-calls-03/test-rep.desc index 6c3eba4ffbe..cca10ac941f 100644 --- a/regression/contracts/function-calls-03/test-rep.desc +++ b/regression/contracts/function-calls-03/test-rep.desc @@ -6,7 +6,13 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the preconditions of f1 (called from main). +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | asserted | assumed + f2 | n/a | n/a + +Note: the call to f2 does not occur because the call to f1 is replaced by its contracts. Recursion: The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). diff --git a/regression/contracts/function-calls-04-1/test-enf.desc b/regression/contracts/function-calls-04-1/test-enf.desc index 4a3da990e58..4ca0e5e7948 100644 --- a/regression/contracts/function-calls-04-1/test-enf.desc +++ b/regression/contracts/function-calls-04-1/test-enf.desc @@ -1,18 +1,20 @@ -KNOWNBUG +CORE main.c ---enforce-all-contracts +--enforce-all-contracts _ --unwind 20 --unwinding-assertions ^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- -- -This confirms the accuracy of the postconditions of f1, f2_out and f2_in. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted + f2_out | assumed | asserted + f2_in | assumed | asserted Test should fail: The postcondition of f2 is incorrect, considering the recursion particularity. Recursion: The base case for the recursive call to f2 provides different behavior than the general case (given the pre-conditions). - -Known bug: -This test requires the "--unwind 20 --unwinding-assertions" flag for the cbmc call in "chain.sh", which is currently not handled. diff --git a/regression/contracts/function-calls-04/test-enf.desc b/regression/contracts/function-calls-04/test-enf.desc index 1969af0f946..808cdab1356 100644 --- a/regression/contracts/function-calls-04/test-enf.desc +++ b/regression/contracts/function-calls-04/test-enf.desc @@ -1,19 +1,20 @@ KNOWNBUG main.c ---enforce-all-contracts +--enforce-all-contracts _ --unwind 20 --unwinding-assertions ^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the postconditions of f1, f2_out and f2_in. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted + f2_out | assumed | asserted + f2_in | assumed | asserted Recursion: The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). -Known bug 1: +Known bug: Enforce flag not handled correctly for function calls within functions. -This bug is fixed in PR #5538. - -Known bug 2: -This test requires the "--unwind 20 --unwinding-assertions" flag for the cbmc call in "chain.sh", which is currently not handled. diff --git a/regression/contracts/function-calls-04/test-mix-1.desc b/regression/contracts/function-calls-04/test-mix-1.desc index c7e87562c3c..3073097c3ee 100644 --- a/regression/contracts/function-calls-04/test-mix-1.desc +++ b/regression/contracts/function-calls-04/test-mix-1.desc @@ -6,7 +6,14 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the preconditions of f2_out (called from f1) and of the postconditions of f1. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted + f2_out | asserted | assumed + f2_in | n/a | n/a + +Note: the calls to f2_in does not occur because the call to f2_out is replaced by its contracts. Recursion: The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). diff --git a/regression/contracts/function-calls-04/test-mix-2.desc b/regression/contracts/function-calls-04/test-mix-2.desc index 01430c7905e..243d70b6f19 100644 --- a/regression/contracts/function-calls-04/test-mix-2.desc +++ b/regression/contracts/function-calls-04/test-mix-2.desc @@ -6,7 +6,12 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the preconditions of f2_in (called from f2_out) and of the postconditions of f1 and of f2_out. +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | assumed | asserted + f2_out | assumed | asserted + f2_in | asserted | assumed Recursion (1) This test checks the mutualy recursive f2_out and f2-in functions by enforcing f2_out and replacing the internal f2_in call with its contract. @@ -15,4 +20,3 @@ Recursion Known bug: Enforce flag not handled correctly for function calls within functions. -This bug is fixed in PR #5538. diff --git a/regression/contracts/function-calls-04/test-rep.desc b/regression/contracts/function-calls-04/test-rep.desc index 6c3eba4ffbe..0551bd1a6b7 100644 --- a/regression/contracts/function-calls-04/test-rep.desc +++ b/regression/contracts/function-calls-04/test-rep.desc @@ -6,7 +6,14 @@ main.c ^VERIFICATION SUCCESSFUL$ -- -- -This confirms the accuracy of the preconditions of f1 (called from main). +Verification: + function | pre-cond | post-cond + ---------|----------|---------- + f1 | asserted | assumed + f2_out | n/a | n/a + f2_in | n/a | n/a + +Note: the calls to f2_out and to f2_in do not occur because the call to f1 is replaced by its contracts. Recursion: The base case for the recursive call to f2 provides the same behavior as the common case (given the pre-conditions). From 879afa25aa7ac42c70ef82fa952e74580be03c4d Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Mon, 15 Mar 2021 19:54:35 +0000 Subject: [PATCH 07/25] Enable cpp-from-CVS regression tests Moving them to cbmc-cpp as they test VERIFICATION results, with few exceptions that were safe to be placed in the cpp folder. Adding `#include ` as needed. --- .../Address_of_Method1/main.cpp | 1 + .../cbmc-cpp/Address_of_Method1/test.desc | 8 ++++++++ .../Anonymous_members1/main.cpp | 1 + .../cbmc-cpp/Anonymous_members1/test.desc | 8 ++++++++ .../Array1/main.cpp | 0 .../Array1/test.desc | 0 .../Array2/main.cpp | 0 .../Array2/test.desc | 0 .../Array3/main.cpp | 0 .../Array3}/test.desc | 0 .../Array4/elsewhere.cpp | 0 .../Array4/main.cpp | 0 .../Array4/test.desc | 0 .../Assignment1/main.cpp | 1 + regression/cbmc-cpp/Assignment1/test.desc | 8 ++++++++ .../Class_Members1/main.cpp | 1 + regression/cbmc-cpp/Class_Members1/test.desc | 8 ++++++++ .../Comma_Operator1/main.cpp | 1 + regression/cbmc-cpp/Comma_Operator1/test.desc | 8 ++++++++ .../ConditionalExpression1/main.cpp | 1 + .../cbmc-cpp/ConditionalExpression1/test.desc | 8 ++++++++ .../ConditionalExpression2/main.cpp | 1 + .../cbmc-cpp/ConditionalExpression2/test.desc | 8 ++++++++ .../Constant5/main.cpp | 0 .../Constant5/test.desc | 0 .../Constructor1/main.cpp | 1 + regression/cbmc-cpp/Constructor1/test.desc | 8 ++++++++ .../Constructor10/main.cpp | 0 .../Constructor10}/test.desc | 0 .../Constructor11/main.cpp | 0 .../Constructor11/test.desc | 0 .../Constructor12/main.cpp | 1 + regression/cbmc-cpp/Constructor12/test.desc | 8 ++++++++ .../Constructor13/main.cpp | 1 + regression/cbmc-cpp/Constructor13/test.desc | 8 ++++++++ .../Constructor14/main.cpp | 0 .../Constructor14}/test.desc | 0 .../Constructor15/main.cpp | 0 .../Constructor15}/test.desc | 0 .../Constructor16/main.cpp | 0 .../Constructor16/test.desc | 0 .../Constructor17/main.cpp | 0 .../Constructor17}/test.desc | 0 .../Constructor2/main.cpp | 1 + regression/cbmc-cpp/Constructor2/test.desc | 8 ++++++++ .../Constructor3/main.cpp | 1 + regression/cbmc-cpp/Constructor3/test.desc | 8 ++++++++ .../Constructor4/main.cpp | 1 + regression/cbmc-cpp/Constructor4/test.desc | 8 ++++++++ .../Constructor5/main.cpp | 1 + regression/cbmc-cpp/Constructor5/test.desc | 8 ++++++++ .../Constructor6/main.cpp | 1 + regression/cbmc-cpp/Constructor6/test.desc | 8 ++++++++ .../Constructor9/main.cpp | 1 + regression/cbmc-cpp/Constructor9/test.desc | 8 ++++++++ .../Conversion1/main.cpp | 0 .../Conversion1}/test.desc | 0 .../Conversion10/main.cpp | 0 .../Conversion10/test.desc | 0 .../Conversion11/main.cpp | 0 .../Conversion11/test.desc | 0 .../Conversion3/main.cpp | 0 .../Conversion3/test.desc | 0 .../Conversion4/main.cpp | 0 .../Conversion4}/test.desc | 0 .../Conversion5/main.cpp | 1 + regression/cbmc-cpp/Conversion5/test.desc | 8 ++++++++ .../Conversion6/main.cpp | 1 + regression/cbmc-cpp/Conversion6/test.desc | 8 ++++++++ .../Conversion7/main.cpp | 0 .../Conversion7/test.desc | 0 .../Conversion8/main.cpp | 0 .../Conversion8/test.desc | 0 .../Conversion9/main.cpp | 0 .../Conversion9}/test.desc | 0 .../Conversion_Operator1/main.cpp | 0 .../Conversion_Operator1}/test.desc | 0 .../Conversion_Operator2/main.cpp | 1 + .../cbmc-cpp/Conversion_Operator2/test.desc | 8 ++++++++ .../Conversion_Operator3/main.cpp | 1 + .../cbmc-cpp/Conversion_Operator3/test.desc | 8 ++++++++ .../Conversion_Operator4/main.cpp | 1 + .../cbmc-cpp/Conversion_Operator4/test.desc | 8 ++++++++ .../Conversion_Operator5/main.cpp | 0 .../Conversion_Operator5}/test.desc | 0 .../Copy_Constructor1/main.cpp | 0 .../Copy_Constructor1}/test.desc | 0 .../Copy_Constructor2/main.cpp | 0 .../Copy_Constructor2}/test.desc | 0 .../Copy_Constructor3/main.cpp | 0 .../Copy_Constructor3}/test.desc | 0 .../Copy_Constructor5/main.cpp | 0 .../Copy_Constructor5}/test.desc | 0 .../Copy_Operator1/main.cpp | 0 .../Copy_Operator1}/test.desc | 0 .../Copy_Operator2/main.cpp | 0 .../Copy_Operator2/test.desc | 0 .../Default_Arguments1/main.cpp | 1 + .../cbmc-cpp/Default_Arguments1/test.desc | 8 ++++++++ .../Default_Arguments2/main.cpp | 1 + .../cbmc-cpp/Default_Arguments2/test.desc | 8 ++++++++ .../Destructor1/main.cpp | 0 .../Destructor1}/test.desc | 0 .../Destructor2/main.cpp | 0 .../Destructor2}/test.desc | 0 .../Destructor3/main.cpp | 0 .../Destructor3}/test.desc | 0 .../Destructor4/main.cpp | 0 .../Array3 => cbmc-cpp/Destructor4}/test.desc | 0 .../Destructor5/main.cpp | 0 .../Destructor5}/test.desc | 0 .../Destructor_with_PtrMember/main.cpp | 1 + .../Destructor_with_PtrMember/test.desc | 8 ++++++++ .../Exception1/main.cpp | 0 .../Friend6 => cbmc-cpp/Exception1}/test.desc | 0 .../Float1/main.cpp | 1 + regression/cbmc-cpp/Float1/test.desc | 8 ++++++++ .../Friend1/main.cpp | 0 .../Friend1}/test.desc | 0 .../Friend3/main.cpp | 0 .../Friend3}/test.desc | 0 .../Friend4/main.cpp | 0 .../Friend4/test.desc | 0 .../Friend5/main.cpp | 1 + regression/cbmc-cpp/Friend5/test.desc | 8 ++++++++ .../Friend6/main.cpp | 0 .../Friend6}/test.desc | 0 .../Function_Arguments1/main.cpp | 0 .../Function_Arguments1}/test.desc | 0 .../Function_Arguments2/main.cpp | 1 + .../cbmc-cpp/Function_Arguments2/test.desc | 8 ++++++++ .../Function_Arguments3/main.cpp | 0 .../Function_Arguments3}/test.desc | 0 .../Function_Arguments4/main.cpp | 0 .../Function_Arguments4}/test.desc | 0 .../Function_Arguments5/main.cpp | 1 + .../cbmc-cpp/Function_Arguments5/test.desc | 8 ++++++++ .../Function_Pointer1/main.cpp | 1 + .../cbmc-cpp/Function_Pointer1/test.desc | 8 ++++++++ .../Implicit_Conversion1/main.cpp | 1 + .../cbmc-cpp/Implicit_Conversion1/test.desc | 8 ++++++++ .../Implicit_Conversion2/main.cpp | 0 .../Implicit_Conversion2}/test.desc | 0 .../Implicit_Conversion3/main.cpp | 0 .../Implicit_Conversion3}/test.desc | 0 .../Implicit_Conversion4/main.cpp | 1 + .../cbmc-cpp/Implicit_Conversion4/test.desc | 8 ++++++++ .../Implicit_Conversion5/main.cpp | 0 .../Implicit_Conversion5/test.desc | 0 .../Implicit_Conversion6/main.cpp | 1 + .../cbmc-cpp/Implicit_Conversion6/test.desc | 8 ++++++++ .../Implicit_Conversion7/main.cpp | 1 + .../cbmc-cpp/Implicit_Conversion7/test.desc | 8 ++++++++ .../Implicit_Conversion8/main.cpp | 0 .../Implicit_Conversion8}/test.desc | 0 .../Implicit_Conversion9/main.cpp | 0 .../Implicit_Conversion9}/test.desc | 0 .../Inheritance1/main.cpp | 1 + regression/cbmc-cpp/Inheritance1/test.desc | 8 ++++++++ .../Inheritance2/main.cpp | 0 .../Inheritance2}/test.desc | 0 .../Inheritance3/main.cpp | 1 + regression/cbmc-cpp/Inheritance3/test.desc | 8 ++++++++ .../Inheritance4/main.cpp | 1 + regression/cbmc-cpp/Inheritance4/test.desc | 8 ++++++++ .../Initializer1/main.cpp | 0 regression/cbmc-cpp/Initializer1/test.desc | 8 ++++++++ .../Label0/main.cpp | 1 + regression/cbmc-cpp/Label0/test.desc | 8 ++++++++ .../Linking1/main.cpp | 1 + .../Linking1/module.cpp | 0 .../Linking1/module.h | 0 .../Linking1/test.desc | 2 +- .../Linking2/test.desc | 0 .../Linking2/test_link1.cpp | 0 .../Linking2/test_link2.c | 0 .../Lvalue1/main.cpp | 0 .../Lvalue1}/test.desc | 0 .../Member_Access_in_Class/main.cpp | 1 + .../cbmc-cpp/Member_Access_in_Class/test.desc | 8 ++++++++ .../Multiple_Inheritance1/main.cpp | 0 .../Multiple_Inheritance1}/test.desc | 0 .../Multiple_Inheritance2/main.cpp | 0 .../Multiple_Inheritance2}/test.desc | 0 .../Multiple_Inheritance3/main.cpp | 0 .../Multiple_Inheritance3/test.desc | 0 .../Multiple_Inheritance4/main.cpp | 0 .../Multiple_Inheritance4}/test.desc | 0 .../Mutable1/main.cpp | 1 + regression/cbmc-cpp/Mutable1/test.desc | 8 ++++++++ .../Overloading_Functions1/main.cpp | 1 + .../cbmc-cpp/Overloading_Functions1/test.desc | 8 ++++++++ .../Overloading_Functions2/main.cpp | 0 .../Overloading_Functions2}/test.desc | 0 .../Overloading_Functions3/main.cpp | 0 .../cbmc-cpp/Overloading_Functions3/test.desc | 8 ++++++++ .../Overloading_Functions4/main.cpp | 0 .../Overloading_Functions4}/test.desc | 0 .../Overloading_Increment1/main.cpp | 1 + .../cbmc-cpp/Overloading_Increment1/test.desc | 8 ++++++++ .../Overloading_Members1/main.cpp | 1 + .../cbmc-cpp/Overloading_Members1/test.desc | 8 ++++++++ .../Overloading_Operators1/main.cpp | 0 .../Overloading_Operators1}/test.desc | 0 .../Overloading_Operators10/main.cpp | 0 .../Overloading_Operators10}/test.desc | 0 .../Overloading_Operators11/main.cpp | 0 .../Overloading_Operators11}/test.desc | 0 .../Overloading_Operators12/main.cpp | 1 + .../Overloading_Operators12/test.desc | 8 ++++++++ .../Overloading_Operators13/main.cpp | 1 + .../Overloading_Operators13/test.desc | 8 ++++++++ .../Overloading_Operators14/main.cpp | 0 .../Overloading_Operators14}/test.desc | 0 .../Overloading_Operators16/main.cpp | 0 .../Overloading_Operators16/test.desc | 0 .../Overloading_Operators2/main.cpp | 1 + .../cbmc-cpp/Overloading_Operators2/test.desc | 8 ++++++++ .../Overloading_Operators3/main.cpp | 0 .../Overloading_Operators3/test.desc | 0 .../Overloading_Operators4/main.cpp | 0 .../Overloading_Operators4}/test.desc | 0 .../Overloading_Operators5/main.cpp | 0 .../Overloading_Operators5}/test.desc | 0 .../Overloading_Operators6/main.cpp | 0 .../Overloading_Operators6}/test.desc | 0 .../Overloading_Operators7/main.cpp | 1 + .../cbmc-cpp/Overloading_Operators7/test.desc | 8 ++++++++ .../Overloading_Operators8/main.cpp | 1 + .../cbmc-cpp/Overloading_Operators8/test.desc | 8 ++++++++ .../Overloading_Operators9/main.cpp | 0 .../Overloading_Operators9}/test.desc | 0 .../Pointer_Conversion2/main.cpp | 1 + .../cbmc-cpp/Pointer_Conversion2/test.desc | 8 ++++++++ .../Pointer_Conversion3/main.cpp | 0 .../Pointer_Conversion3/test.desc | 0 .../Pointer_To_Member1/main.cpp | 0 .../Pointer_To_Member1}/test.desc | 0 .../Pointer_To_Member2/main.cpp | 0 .../Pointer_To_Member2/test.desc | 0 .../Pointer_To_Member3/main.cpp | 0 .../Pointer_To_Member3/test.desc | 0 .../Pointer_To_Member4/main.cpp | 0 .../Pointer_To_Member4/test.desc | 0 .../Pointer_To_Member5/main.cpp | 0 .../Pointer_To_Member5}/test.desc | 0 .../Pointer_To_Member6/main.cpp | 0 .../Pointer_To_Member6}/test.desc | 0 .../Protection2/main.cpp | 1 + regression/cbmc-cpp/Protection2/test.desc | 8 ++++++++ .../Protection3/main.cpp | 0 .../Protection3}/test.desc | 0 .../Protection4/main.cpp | 0 .../Protection4}/test.desc | 0 .../Protection5/main.cpp | 0 .../Protection5/test.desc | 0 .../Protection6/main.cpp | 0 .../Protection6/test.desc | 0 .../Protection7/main.cpp | 0 .../Protection7}/test.desc | 0 .../Protection8/main.cpp | 0 .../Protection8/test.desc | 0 .../Qualifier1/main.cpp | 0 .../Qualifier1}/test.desc | 0 .../Qualifier2/main.cpp | 1 + regression/cbmc-cpp/Qualifier2/test.desc | 8 ++++++++ .../Qualifier3/main.cpp | 0 .../Qualifier3}/test.desc | 0 .../Qualifier4/main.cpp | 0 .../Qualifier4/test.desc | 0 .../Reference1/main.cpp | 0 .../Reference1}/test.desc | 0 .../Reference2/main.cpp | 1 + regression/cbmc-cpp/Reference2/test.desc | 8 ++++++++ .../Reference3/main.cpp | 1 + regression/cbmc-cpp/Reference3/test.desc | 8 ++++++++ .../Reference4/main.cpp | 0 .../Reference4}/test.desc | 0 .../Reference5/main.cpp | 0 .../Reference5}/test.desc | 0 .../Reference6/main.cpp | 1 + regression/cbmc-cpp/Reference6/test.desc | 8 ++++++++ .../Reference7/main.cpp | 1 + regression/cbmc-cpp/Reference7/test.desc | 8 ++++++++ .../Reference8/main.cpp | 0 .../Reference8/test.desc | 0 .../Resolver13/main.cpp | 0 .../Resolver13}/test.desc | 0 .../Resolver5/main.cpp | 0 .../Resolver5}/test.desc | 0 .../Resolver6/main.cpp | 1 + regression/cbmc-cpp/Resolver6/test.desc | 8 ++++++++ .../Resolver7/main.cpp | 1 + regression/cbmc-cpp/Resolver7/test.desc | 8 ++++++++ .../Resolver8/main.cpp | 1 + regression/cbmc-cpp/Resolver8/test.desc | 8 ++++++++ .../Resolver9/main.cpp | 0 .../Resolver9}/test.desc | 0 .../{cpp-from-CVS => cbmc-cpp}/STL1/main.cpp | 0 .../Templates32 => cbmc-cpp/STL1}/test.desc | 0 .../{cpp-from-CVS => cbmc-cpp}/STL2/main.cpp | 0 .../{cpp-from-CVS => cbmc-cpp}/STL2/test.desc | 0 .../Static_Member1/main.cpp | 0 .../Static_Member1}/test.desc | 0 .../Static_Member_Function/main.cpp | 0 .../Static_Member_Function}/test.desc | 0 .../Static_Method1/main.cpp | 1 + regression/cbmc-cpp/Static_Method1/test.desc | 8 ++++++++ .../String_Literal1/main.cpp | 1 + regression/cbmc-cpp/String_Literal1/test.desc | 8 ++++++++ .../Templates1/main.cpp | 0 .../Templates1}/test.desc | 0 .../Templates10/main.cpp | 1 + regression/cbmc-cpp/Templates10/test.desc | 8 ++++++++ .../Templates11/main.cpp | 1 + regression/cbmc-cpp/Templates11/test.desc | 8 ++++++++ .../Templates12/main.cpp | 0 regression/cbmc-cpp/Templates12/test.desc | 8 ++++++++ .../Templates13/main.cpp | 1 + regression/cbmc-cpp/Templates13/test.desc | 8 ++++++++ .../Templates14/main.cpp | 1 + regression/cbmc-cpp/Templates14/test.desc | 8 ++++++++ .../Templates16/main.cpp | 0 .../Templates16}/test.desc | 0 .../Templates17/main.cpp | 0 .../Templates17}/test.desc | 0 .../Templates18/main.cpp | 0 .../Templates18}/test.desc | 0 .../Templates19/main.cpp | 1 + regression/cbmc-cpp/Templates19/test.desc | 8 ++++++++ .../Templates20/main.cpp | 0 .../Templates20}/test.desc | 0 .../Templates21/main.cpp | 0 regression/cbmc-cpp/Templates21/test.desc | 8 ++++++++ .../Templates22/main.cpp | 1 + regression/cbmc-cpp/Templates22/test.desc | 8 ++++++++ .../Templates23/main.cpp | 0 regression/cbmc-cpp/Templates23/test.desc | 8 ++++++++ .../Templates24/main.cpp | 0 regression/cbmc-cpp/Templates24/test.desc | 8 ++++++++ regression/cbmc-cpp/Templates25/main.cpp | 9 +++++++++ regression/cbmc-cpp/Templates25/test.desc | 8 ++++++++ .../Templates26/main.cpp | 0 regression/cbmc-cpp/Templates26/test.desc | 8 ++++++++ .../Templates27/main.cpp | 0 .../Templates27}/test.desc | 0 .../Templates28/main.cpp | 1 + regression/cbmc-cpp/Templates28/test.desc | 8 ++++++++ .../Templates29/main.cpp | 0 .../Templates29}/test.desc | 0 .../Templates3/main.cpp | 1 + regression/cbmc-cpp/Templates3/test.desc | 8 ++++++++ .../Templates30/main.cpp | 1 + regression/cbmc-cpp/Templates30/test.desc | 8 ++++++++ .../Templates31/main.cpp | 0 .../Templates31}/test.desc | 0 .../Templates32/main.cpp | 0 .../Templates32}/test.desc | 0 .../Templates34/main.cpp | 0 .../Templates34}/test.desc | 0 .../Templates35/main.cpp | 0 .../Templates35}/test.desc | 0 .../Templates36/main.cpp | 0 .../Templates36}/test.desc | 0 .../Templates4/main.cpp | 0 .../Templates4}/test.desc | 0 .../Templates5/main.cpp | 0 .../Templates5}/test.desc | 0 .../Templates6/main.cpp | 0 .../Templates6}/test.desc | 0 .../Templates8/main.cpp | 0 .../union1 => cbmc-cpp/Templates8}/test.desc | 0 .../Templates9/main.cpp | 0 .../Templates9}/test.desc | 0 .../Temporary1/main.cpp | 0 .../Temporary1}/test.desc | 0 .../Temporary2/main.cpp | 0 .../Temporary2}/test.desc | 0 .../Typecast1/main.cpp | 0 .../Typecast1}/test.desc | 0 .../Typecast2/main.cpp | 0 .../Typecast2}/test.desc | 0 .../Typedef1/main.cpp | 1 + regression/cbmc-cpp/Typedef1/test.desc | 8 ++++++++ .../Typedef2/main.cpp | 0 .../virtual4 => cbmc-cpp/Typedef2}/test.desc | 0 .../Typedef3/main.cpp | 0 .../Typedef3}/test.desc | 2 +- .../Vector1/lib/container | 0 .../Vector1/lib/iterator | 0 .../Vector1/lib/list | 0 .../Vector1/lib/vector | 0 .../Vector1/main.cpp | 0 .../Vector1}/test.desc | 2 +- .../Zero_Initializer1/main.cpp | 0 .../Zero_Initializer1}/test.desc | 2 +- .../{cpp-from-CVS => cbmc-cpp}/argv1/main.cpp | 1 + regression/cbmc-cpp/argv1/test.desc | 8 ++++++++ .../const_cast1/main.cpp | 1 + regression/cbmc-cpp/const_cast1/test.desc | 8 ++++++++ .../extractbits1/main.cpp | 0 .../extractbits1}/test.desc | 2 +- .../{cpp-from-CVS => cbmc-cpp}/for1/main.cpp | 1 + regression/cbmc-cpp/for1/test.desc | 8 ++++++++ .../initialization1/main.cpp | 0 regression/cbmc-cpp/initialization1/test.desc | 8 ++++++++ .../initialization2/main.cpp | 0 regression/cbmc-cpp/initialization2/test.desc | 8 ++++++++ .../initialization3/main.cpp | 1 + .../initialization3/test.desc | 2 +- .../initialization4/main.cpp | 0 regression/cbmc-cpp/initialization4/test.desc | 8 ++++++++ .../initialization5/main.cpp | 1 + regression/cbmc-cpp/initialization5/test.desc | 8 ++++++++ .../initialization6/main.cpp | 0 .../initialization6/test.desc | 0 .../initialization7/main.cpp | 0 regression/cbmc-cpp/initialization7/test.desc | 8 ++++++++ .../namespace1/main.cpp | 1 + regression/cbmc-cpp/namespace1/test.desc | 8 ++++++++ .../namespace2/main.cpp | 0 regression/cbmc-cpp/namespace2/test.desc | 8 ++++++++ .../namespace3/main.cpp | 1 + regression/cbmc-cpp/namespace3/test.desc | 8 ++++++++ .../{cpp-from-CVS => cbmc-cpp}/new1/main.cpp | 1 + .../{cpp-from-CVS => cbmc-cpp}/new1/test.desc | 2 +- .../operators/main.cpp | 1 + regression/cbmc-cpp/operators/test.desc | 8 ++++++++ .../reinterpret_cast1/main.cpp | 1 + .../reinterpret_cast1/test.desc | 2 +- .../reinterpret_cast2/main.cpp | 0 .../reinterpret_cast2}/test.desc | 0 .../static_cast1/main.cpp | 1 + regression/cbmc-cpp/static_cast1/test.desc | 8 ++++++++ .../static_cast2/main.cpp | 0 .../static_cast2}/test.desc | 0 .../static_cast3/main.cpp | 1 + regression/cbmc-cpp/static_cast3/test.desc | 8 ++++++++ .../static_cast4/main.cpp | 0 .../static_cast4}/test.desc | 0 .../static_cast5/main.cpp | 1 + regression/cbmc-cpp/static_cast5/test.desc | 8 ++++++++ .../struct1/main.cpp | 0 .../struct1}/test.desc | 0 .../typecast_ambiguity3/main.cpp | 0 .../cbmc-cpp/typecast_ambiguity3/test.desc | 8 ++++++++ .../typename1/main.cpp | 0 .../typename1}/test.desc | 0 .../typename2/main.cpp | 0 .../typename2}/test.desc | 0 .../union1/main.cpp | 0 regression/cbmc-cpp/union1/test.desc | 8 ++++++++ .../virtual1/main.cpp | 0 regression/cbmc-cpp/virtual1/test.desc | 8 ++++++++ .../virtual10/main.cpp | 1 + regression/cbmc-cpp/virtual10/test.desc | 7 +++++++ .../virtual11/main.cpp | 0 .../virtual11/test.desc | 0 .../virtual12/main.cpp | 0 .../virtual12/test.desc | 0 .../virtual13/main.cpp | 0 regression/cbmc-cpp/virtual13/test.desc | 8 ++++++++ .../virtual14/main.cpp | 0 regression/cbmc-cpp/virtual14/test.desc | 8 ++++++++ .../virtual15/main.cpp | 0 regression/cbmc-cpp/virtual15/test.desc | 8 ++++++++ .../virtual2/main.cpp | 1 + regression/cbmc-cpp/virtual2/test.desc | 8 ++++++++ .../virtual3/main.cpp | 0 .../virtual3/test.desc | 0 .../virtual4/main.cpp | 0 regression/cbmc-cpp/virtual4/test.desc | 8 ++++++++ .../virtual5/main.cpp | 0 .../virtual5/test.desc | 0 .../virtual6/main.cpp | 0 .../virtual6/test.desc | 0 .../virtual7/main.cpp | 0 .../virtual7/test.desc | 0 .../virtual8/main.cpp | 0 .../virtual8/test.desc | 0 .../virtual9/main.cpp | 1 + regression/cbmc-cpp/virtual9/test.desc | 7 +++++++ regression/cpp-from-CVS/Conversion6/test.desc | 8 -------- .../Conversion_Operator2/test.desc | 8 -------- .../Conversion_Operator3/test.desc | 8 -------- .../Conversion_Operator4/test.desc | 8 -------- .../cpp-from-CVS/Default_Arguments1/test.desc | 8 -------- .../cpp-from-CVS/Default_Arguments2/test.desc | 8 -------- regression/cpp-from-CVS/Destructor3/test.desc | 8 -------- regression/cpp-from-CVS/Destructor4/test.desc | 8 -------- regression/cpp-from-CVS/Destructor5/test.desc | 8 -------- .../Destructor_with_PtrMember/test.desc | 8 -------- regression/cpp-from-CVS/Float1/test.desc | 8 -------- regression/cpp-from-CVS/Friend1/test.desc | 8 -------- regression/cpp-from-CVS/Friend3/test.desc | 8 -------- regression/cpp-from-CVS/Friend5/test.desc | 8 -------- .../Function_Arguments1/test.desc | 8 -------- .../Function_Arguments2/test.desc | 8 -------- .../Function_Arguments5/test.desc | 8 -------- .../cpp-from-CVS/Function_Pointer1/test.desc | 8 -------- .../Implicit_Conversion1/test.desc | 8 -------- .../Implicit_Conversion4/test.desc | 8 -------- .../Implicit_Conversion6/test.desc | 8 -------- .../Implicit_Conversion7/test.desc | 8 -------- .../Implicit_Conversion9/test.desc | 8 -------- .../cpp-from-CVS/Inheritance1/test.desc | 8 -------- .../cpp-from-CVS/Inheritance3/test.desc | 8 -------- .../cpp-from-CVS/Inheritance4/test.desc | 8 -------- .../cpp-from-CVS/Initializer1/test.desc | 8 -------- regression/cpp-from-CVS/Label0/test.desc | 8 -------- regression/cpp-from-CVS/Makefile | 19 ------------------- .../Member_Access_in_Class/test.desc | 8 -------- regression/cpp-from-CVS/Mutable1/test.desc | 8 -------- .../Overloading_Functions1/test.desc | 8 -------- .../Overloading_Functions3/test.desc | 8 -------- .../Overloading_Functions4/test.desc | 8 -------- .../Overloading_Increment1/test.desc | 8 -------- .../Overloading_Members1/test.desc | 8 -------- .../Overloading_Operators12/test.desc | 8 -------- .../Overloading_Operators13/test.desc | 8 -------- .../Overloading_Operators2/test.desc | 8 -------- .../Overloading_Operators7/test.desc | 8 -------- .../Overloading_Operators8/test.desc | 8 -------- .../Pointer_Conversion2/test.desc | 8 -------- .../cpp-from-CVS/Pointer_To_Member1/test.desc | 8 -------- .../cpp-from-CVS/Pointer_To_Member5/test.desc | 8 -------- regression/cpp-from-CVS/Protection2/test.desc | 8 -------- regression/cpp-from-CVS/Protection7/test.desc | 8 -------- regression/cpp-from-CVS/Qualifier2/test.desc | 8 -------- regression/cpp-from-CVS/Reference2/test.desc | 8 -------- regression/cpp-from-CVS/Reference3/test.desc | 8 -------- regression/cpp-from-CVS/Reference6/test.desc | 8 -------- regression/cpp-from-CVS/Reference7/test.desc | 8 -------- regression/cpp-from-CVS/Resolver6/test.desc | 8 -------- regression/cpp-from-CVS/Resolver7/test.desc | 8 -------- regression/cpp-from-CVS/Resolver8/test.desc | 8 -------- regression/cpp-from-CVS/Resolver9/test.desc | 8 -------- .../cpp-from-CVS/Static_Member1/test.desc | 8 -------- .../Static_Member_Function/test.desc | 8 -------- .../cpp-from-CVS/Static_Method1/test.desc | 8 -------- .../cpp-from-CVS/String_Literal1/test.desc | 8 -------- regression/cpp-from-CVS/Templates1/test.desc | 8 -------- regression/cpp-from-CVS/Templates10/test.desc | 8 -------- regression/cpp-from-CVS/Templates11/test.desc | 8 -------- regression/cpp-from-CVS/Templates12/test.desc | 8 -------- regression/cpp-from-CVS/Templates13/test.desc | 8 -------- regression/cpp-from-CVS/Templates14/test.desc | 8 -------- regression/cpp-from-CVS/Templates17/test.desc | 8 -------- regression/cpp-from-CVS/Templates18/test.desc | 8 -------- regression/cpp-from-CVS/Templates19/test.desc | 8 -------- regression/cpp-from-CVS/Templates21/test.desc | 8 -------- regression/cpp-from-CVS/Templates22/test.desc | 8 -------- regression/cpp-from-CVS/Templates23/test.desc | 8 -------- regression/cpp-from-CVS/Templates24/test.desc | 8 -------- regression/cpp-from-CVS/Templates25/main.cpp | 7 ------- regression/cpp-from-CVS/Templates25/test.desc | 8 -------- regression/cpp-from-CVS/Templates26/test.desc | 8 -------- regression/cpp-from-CVS/Templates28/test.desc | 8 -------- regression/cpp-from-CVS/Templates3/test.desc | 8 -------- regression/cpp-from-CVS/Templates30/test.desc | 8 -------- regression/cpp-from-CVS/Templates33/test.desc | 8 -------- regression/cpp-from-CVS/Templates35/test.desc | 8 -------- regression/cpp-from-CVS/Templates5/test.desc | 8 -------- regression/cpp-from-CVS/Templates8/test.desc | 8 -------- regression/cpp-from-CVS/Typecast1/test.desc | 8 -------- regression/cpp-from-CVS/Typedef1/test.desc | 8 -------- regression/cpp-from-CVS/Typedef2/test.desc | 8 -------- regression/cpp-from-CVS/Typedef3/test.desc | 8 -------- .../cpp-from-CVS/Zero_Initializer1/test.desc | 8 -------- regression/cpp-from-CVS/argv1/test.desc | 8 -------- regression/cpp-from-CVS/const_cast1/test.desc | 8 -------- regression/cpp-from-CVS/for1/test.desc | 8 -------- .../cpp-from-CVS/initialization1/test.desc | 8 -------- .../cpp-from-CVS/initialization5/test.desc | 8 -------- regression/cpp-from-CVS/namespace1/test.desc | 8 -------- regression/cpp-from-CVS/namespace3/test.desc | 8 -------- regression/cpp-from-CVS/operators/test.desc | 8 -------- .../cpp-from-CVS/reinterpret_cast2/test.desc | 8 -------- .../cpp-from-CVS/static_cast1/test.desc | 8 -------- .../cpp-from-CVS/static_cast3/test.desc | 8 -------- .../cpp-from-CVS/static_cast5/test.desc | 8 -------- regression/cpp-from-CVS/struct1/test.desc | 8 -------- .../typecast_ambiguity3/test.desc | 8 -------- regression/cpp-from-CVS/typename1/test.desc | 8 -------- regression/cpp-from-CVS/typename2/test.desc | 8 -------- regression/cpp-from-CVS/virtual10/test.desc | 7 ------- regression/cpp-from-CVS/virtual2/test.desc | 8 -------- regression/cpp-from-CVS/virtual9/test.desc | 7 ------- .../Address_of_Method4/main.cpp | 0 regression/cpp/Address_of_Method4/test.desc | 7 +++++++ .../Protection1/main.cpp | 5 +++++ .../Protection1}/test.desc | 2 +- .../Templates15/main.cpp | 0 .../Templates15}/test.desc | 2 +- .../Templates33/main.cpp | 0 regression/cpp/Templates33/test.desc | 7 +++++++ 596 files changed, 938 insertions(+), 866 deletions(-) rename regression/{cpp-from-CVS => cbmc-cpp}/Address_of_Method1/main.cpp (86%) create mode 100644 regression/cbmc-cpp/Address_of_Method1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Anonymous_members1/main.cpp (95%) create mode 100644 regression/cbmc-cpp/Anonymous_members1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Array1/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Array1/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Array2/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Array2/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Array3/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor14 => cbmc-cpp/Array3}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Array4/elsewhere.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Array4/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Array4/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Assignment1/main.cpp (94%) create mode 100644 regression/cbmc-cpp/Assignment1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Class_Members1/main.cpp (92%) create mode 100644 regression/cbmc-cpp/Class_Members1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Comma_Operator1/main.cpp (82%) create mode 100644 regression/cbmc-cpp/Comma_Operator1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/ConditionalExpression1/main.cpp (89%) create mode 100644 regression/cbmc-cpp/ConditionalExpression1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/ConditionalExpression2/main.cpp (83%) create mode 100644 regression/cbmc-cpp/ConditionalExpression2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Constant5/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Constant5/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor1/main.cpp (94%) create mode 100644 regression/cbmc-cpp/Constructor1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor10/main.cpp (100%) rename regression/{cpp-from-CVS/Address_of_Method1 => cbmc-cpp/Constructor10}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor11/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor11/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor12/main.cpp (92%) create mode 100644 regression/cbmc-cpp/Constructor12/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor13/main.cpp (95%) create mode 100644 regression/cbmc-cpp/Constructor13/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor14/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor17 => cbmc-cpp/Constructor14}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor15/main.cpp (100%) rename regression/{cpp-from-CVS/Address_of_Method4 => cbmc-cpp/Constructor15}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor16/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor16/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor17/main.cpp (100%) rename regression/{cpp-from-CVS/Conversion1 => cbmc-cpp/Constructor17}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor2/main.cpp (92%) create mode 100644 regression/cbmc-cpp/Constructor2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor3/main.cpp (87%) create mode 100644 regression/cbmc-cpp/Constructor3/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor4/main.cpp (82%) create mode 100644 regression/cbmc-cpp/Constructor4/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor5/main.cpp (88%) create mode 100644 regression/cbmc-cpp/Constructor5/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor6/main.cpp (89%) create mode 100644 regression/cbmc-cpp/Constructor6/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Constructor9/main.cpp (95%) create mode 100644 regression/cbmc-cpp/Constructor9/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion1/main.cpp (100%) rename regression/{cpp-from-CVS/Conversion4 => cbmc-cpp/Conversion1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion10/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion10/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion11/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion11/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion3/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion3/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion4/main.cpp (100%) rename regression/{cpp-from-CVS/Conversion9 => cbmc-cpp/Conversion4}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion5/main.cpp (80%) create mode 100644 regression/cbmc-cpp/Conversion5/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion6/main.cpp (93%) create mode 100644 regression/cbmc-cpp/Conversion6/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion7/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion7/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion8/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion8/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion9/main.cpp (100%) rename regression/{cpp-from-CVS/Conversion_Operator1 => cbmc-cpp/Conversion9}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion_Operator1/main.cpp (100%) rename regression/{cpp-from-CVS/Conversion_Operator5 => cbmc-cpp/Conversion_Operator1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion_Operator2/main.cpp (91%) create mode 100644 regression/cbmc-cpp/Conversion_Operator2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion_Operator3/main.cpp (91%) create mode 100644 regression/cbmc-cpp/Conversion_Operator3/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion_Operator4/main.cpp (89%) create mode 100644 regression/cbmc-cpp/Conversion_Operator4/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Conversion_Operator5/main.cpp (100%) rename regression/{cpp-from-CVS/Copy_Constructor1 => cbmc-cpp/Conversion_Operator5}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Copy_Constructor1/main.cpp (100%) rename regression/{cpp-from-CVS/Copy_Constructor2 => cbmc-cpp/Copy_Constructor1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Copy_Constructor2/main.cpp (100%) rename regression/{cpp-from-CVS/Copy_Constructor3 => cbmc-cpp/Copy_Constructor2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Copy_Constructor3/main.cpp (100%) rename regression/{cpp-from-CVS/Copy_Constructor5 => cbmc-cpp/Copy_Constructor3}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Copy_Constructor5/main.cpp (100%) rename regression/{cpp-from-CVS/Copy_Operator1 => cbmc-cpp/Copy_Constructor5}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Copy_Operator1/main.cpp (100%) rename regression/{cpp-from-CVS/Destructor1 => cbmc-cpp/Copy_Operator1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Copy_Operator2/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Copy_Operator2/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Default_Arguments1/main.cpp (94%) create mode 100644 regression/cbmc-cpp/Default_Arguments1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Default_Arguments2/main.cpp (84%) create mode 100644 regression/cbmc-cpp/Default_Arguments2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Destructor1/main.cpp (100%) rename regression/{cpp-from-CVS/Destructor2 => cbmc-cpp/Destructor1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Destructor2/main.cpp (100%) rename regression/{cpp-from-CVS/Exception1 => cbmc-cpp/Destructor2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Destructor3/main.cpp (100%) rename regression/{cpp-from-CVS/Anonymous_members1 => cbmc-cpp/Destructor3}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Destructor4/main.cpp (100%) rename regression/{cpp-from-CVS/Array3 => cbmc-cpp/Destructor4}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Destructor5/main.cpp (100%) rename regression/{cpp-from-CVS/Assignment1 => cbmc-cpp/Destructor5}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Destructor_with_PtrMember/main.cpp (96%) create mode 100644 regression/cbmc-cpp/Destructor_with_PtrMember/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Exception1/main.cpp (100%) rename regression/{cpp-from-CVS/Friend6 => cbmc-cpp/Exception1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Float1/main.cpp (88%) create mode 100644 regression/cbmc-cpp/Float1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Friend1/main.cpp (100%) rename regression/{cpp-from-CVS/Function_Arguments3 => cbmc-cpp/Friend1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Friend3/main.cpp (100%) rename regression/{cpp-from-CVS/Function_Arguments4 => cbmc-cpp/Friend3}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Friend4/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Friend4/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Friend5/main.cpp (92%) create mode 100644 regression/cbmc-cpp/Friend5/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Friend6/main.cpp (100%) rename regression/{cpp-from-CVS/Implicit_Conversion2 => cbmc-cpp/Friend6}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Function_Arguments1/main.cpp (100%) rename regression/{cpp-from-CVS/Class_Members1 => cbmc-cpp/Function_Arguments1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Function_Arguments2/main.cpp (93%) create mode 100644 regression/cbmc-cpp/Function_Arguments2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Function_Arguments3/main.cpp (100%) rename regression/{cpp-from-CVS/Implicit_Conversion3 => cbmc-cpp/Function_Arguments3}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Function_Arguments4/main.cpp (100%) rename regression/{cpp-from-CVS/Implicit_Conversion8 => cbmc-cpp/Function_Arguments4}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Function_Arguments5/main.cpp (89%) create mode 100644 regression/cbmc-cpp/Function_Arguments5/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Function_Pointer1/main.cpp (81%) create mode 100644 regression/cbmc-cpp/Function_Pointer1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Implicit_Conversion1/main.cpp (88%) create mode 100644 regression/cbmc-cpp/Implicit_Conversion1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Implicit_Conversion2/main.cpp (100%) rename regression/{cpp-from-CVS/Inheritance2 => cbmc-cpp/Implicit_Conversion2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Implicit_Conversion3/main.cpp (100%) rename regression/{cpp-from-CVS/Lvalue1 => cbmc-cpp/Implicit_Conversion3}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Implicit_Conversion4/main.cpp (98%) create mode 100644 regression/cbmc-cpp/Implicit_Conversion4/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Implicit_Conversion5/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Implicit_Conversion5/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Implicit_Conversion6/main.cpp (84%) create mode 100644 regression/cbmc-cpp/Implicit_Conversion6/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Implicit_Conversion7/main.cpp (66%) create mode 100644 regression/cbmc-cpp/Implicit_Conversion7/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Implicit_Conversion8/main.cpp (100%) rename regression/{cpp-from-CVS/Multiple_Inheritance1 => cbmc-cpp/Implicit_Conversion8}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Implicit_Conversion9/main.cpp (100%) rename regression/{cpp-from-CVS/Comma_Operator1 => cbmc-cpp/Implicit_Conversion9}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Inheritance1/main.cpp (89%) create mode 100644 regression/cbmc-cpp/Inheritance1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Inheritance2/main.cpp (100%) rename regression/{cpp-from-CVS/Multiple_Inheritance2 => cbmc-cpp/Inheritance2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Inheritance3/main.cpp (90%) create mode 100644 regression/cbmc-cpp/Inheritance3/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Inheritance4/main.cpp (87%) create mode 100644 regression/cbmc-cpp/Inheritance4/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Initializer1/main.cpp (100%) create mode 100644 regression/cbmc-cpp/Initializer1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Label0/main.cpp (75%) create mode 100644 regression/cbmc-cpp/Label0/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Linking1/main.cpp (84%) rename regression/{cpp-from-CVS => cbmc-cpp}/Linking1/module.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Linking1/module.h (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Linking1/test.desc (73%) rename regression/{cpp-from-CVS => cbmc-cpp}/Linking2/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Linking2/test_link1.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Linking2/test_link2.c (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Lvalue1/main.cpp (100%) rename regression/{cpp-from-CVS/Multiple_Inheritance4 => cbmc-cpp/Lvalue1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Member_Access_in_Class/main.cpp (88%) create mode 100644 regression/cbmc-cpp/Member_Access_in_Class/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Multiple_Inheritance1/main.cpp (100%) rename regression/{cpp-from-CVS/Overloading_Functions2 => cbmc-cpp/Multiple_Inheritance1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Multiple_Inheritance2/main.cpp (100%) rename regression/{cpp-from-CVS/Overloading_Operators1 => cbmc-cpp/Multiple_Inheritance2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Multiple_Inheritance3/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Multiple_Inheritance3/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Multiple_Inheritance4/main.cpp (100%) rename regression/{cpp-from-CVS/Overloading_Operators10 => cbmc-cpp/Multiple_Inheritance4}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Mutable1/main.cpp (87%) create mode 100644 regression/cbmc-cpp/Mutable1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Functions1/main.cpp (95%) create mode 100644 regression/cbmc-cpp/Overloading_Functions1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Functions2/main.cpp (100%) rename regression/{cpp-from-CVS/Overloading_Operators11 => cbmc-cpp/Overloading_Functions2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Functions3/main.cpp (100%) create mode 100644 regression/cbmc-cpp/Overloading_Functions3/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Functions4/main.cpp (100%) rename regression/{cpp-from-CVS/ConditionalExpression1 => cbmc-cpp/Overloading_Functions4}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Increment1/main.cpp (96%) create mode 100644 regression/cbmc-cpp/Overloading_Increment1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Members1/main.cpp (90%) create mode 100644 regression/cbmc-cpp/Overloading_Members1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators1/main.cpp (100%) rename regression/{cpp-from-CVS/Overloading_Operators14 => cbmc-cpp/Overloading_Operators1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators10/main.cpp (100%) rename regression/{cpp-from-CVS/Overloading_Operators4 => cbmc-cpp/Overloading_Operators10}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators11/main.cpp (100%) rename regression/{cpp-from-CVS/Overloading_Operators5 => cbmc-cpp/Overloading_Operators11}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators12/main.cpp (89%) create mode 100644 regression/cbmc-cpp/Overloading_Operators12/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators13/main.cpp (91%) create mode 100644 regression/cbmc-cpp/Overloading_Operators13/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators14/main.cpp (100%) rename regression/{cpp-from-CVS/Overloading_Operators6 => cbmc-cpp/Overloading_Operators14}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators16/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators16/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators2/main.cpp (92%) create mode 100644 regression/cbmc-cpp/Overloading_Operators2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators3/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators3/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators4/main.cpp (100%) rename regression/{cpp-from-CVS/Overloading_Operators9 => cbmc-cpp/Overloading_Operators4}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators5/main.cpp (100%) rename regression/{cpp-from-CVS/Pointer_To_Member6 => cbmc-cpp/Overloading_Operators5}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators6/main.cpp (100%) rename regression/{cpp-from-CVS/Reference1 => cbmc-cpp/Overloading_Operators6}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators7/main.cpp (92%) create mode 100644 regression/cbmc-cpp/Overloading_Operators7/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators8/main.cpp (91%) create mode 100644 regression/cbmc-cpp/Overloading_Operators8/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Overloading_Operators9/main.cpp (100%) rename regression/{cpp-from-CVS/Resolver13 => cbmc-cpp/Overloading_Operators9}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_Conversion2/main.cpp (82%) create mode 100644 regression/cbmc-cpp/Pointer_Conversion2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_Conversion3/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_Conversion3/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_To_Member1/main.cpp (100%) rename regression/{cpp-from-CVS/Resolver5 => cbmc-cpp/Pointer_To_Member1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_To_Member2/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_To_Member2/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_To_Member3/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_To_Member3/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_To_Member4/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_To_Member4/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_To_Member5/main.cpp (100%) rename regression/{cpp-from-CVS/STL1 => cbmc-cpp/Pointer_To_Member5}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Pointer_To_Member6/main.cpp (100%) rename regression/{cpp-from-CVS/Templates16 => cbmc-cpp/Pointer_To_Member6}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Protection2/main.cpp (90%) create mode 100644 regression/cbmc-cpp/Protection2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Protection3/main.cpp (100%) rename regression/{cpp-from-CVS/Protection1 => cbmc-cpp/Protection3}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Protection4/main.cpp (100%) rename regression/{cpp-from-CVS/Protection3 => cbmc-cpp/Protection4}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Protection5/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Protection5/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Protection6/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Protection6/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Protection7/main.cpp (100%) rename regression/{cpp-from-CVS/Templates20 => cbmc-cpp/Protection7}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Protection8/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Protection8/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Qualifier1/main.cpp (100%) rename regression/{cpp-from-CVS/Protection4 => cbmc-cpp/Qualifier1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Qualifier2/main.cpp (92%) create mode 100644 regression/cbmc-cpp/Qualifier2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Qualifier3/main.cpp (100%) rename regression/{cpp-from-CVS/Qualifier1 => cbmc-cpp/Qualifier3}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Qualifier4/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Qualifier4/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Reference1/main.cpp (100%) rename regression/{cpp-from-CVS/Templates27 => cbmc-cpp/Reference1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Reference2/main.cpp (91%) create mode 100644 regression/cbmc-cpp/Reference2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Reference3/main.cpp (90%) create mode 100644 regression/cbmc-cpp/Reference3/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Reference4/main.cpp (100%) rename regression/{cpp-from-CVS/Qualifier3 => cbmc-cpp/Reference4}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Reference5/main.cpp (100%) rename regression/{cpp-from-CVS/Reference4 => cbmc-cpp/Reference5}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Reference6/main.cpp (87%) create mode 100644 regression/cbmc-cpp/Reference6/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Reference7/main.cpp (80%) create mode 100644 regression/cbmc-cpp/Reference7/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Reference8/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Reference8/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Resolver13/main.cpp (100%) rename regression/{cpp-from-CVS/Templates29 => cbmc-cpp/Resolver13}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Resolver5/main.cpp (100%) rename regression/{cpp-from-CVS/Templates31 => cbmc-cpp/Resolver5}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Resolver6/main.cpp (86%) create mode 100644 regression/cbmc-cpp/Resolver6/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Resolver7/main.cpp (90%) create mode 100644 regression/cbmc-cpp/Resolver7/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Resolver8/main.cpp (87%) create mode 100644 regression/cbmc-cpp/Resolver8/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Resolver9/main.cpp (100%) rename regression/{cpp-from-CVS/ConditionalExpression2 => cbmc-cpp/Resolver9}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/STL1/main.cpp (100%) rename regression/{cpp-from-CVS/Templates32 => cbmc-cpp/STL1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/STL2/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/STL2/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Static_Member1/main.cpp (100%) rename regression/{cpp-from-CVS/Templates34 => cbmc-cpp/Static_Member1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Static_Member_Function/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor1 => cbmc-cpp/Static_Member_Function}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Static_Method1/main.cpp (88%) create mode 100644 regression/cbmc-cpp/Static_Method1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/String_Literal1/main.cpp (76%) create mode 100644 regression/cbmc-cpp/String_Literal1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates1/main.cpp (100%) rename regression/{cpp-from-CVS/Templates36 => cbmc-cpp/Templates1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates10/main.cpp (92%) create mode 100644 regression/cbmc-cpp/Templates10/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates11/main.cpp (92%) create mode 100644 regression/cbmc-cpp/Templates11/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates12/main.cpp (100%) create mode 100644 regression/cbmc-cpp/Templates12/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates13/main.cpp (88%) create mode 100644 regression/cbmc-cpp/Templates13/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates14/main.cpp (90%) create mode 100644 regression/cbmc-cpp/Templates14/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates16/main.cpp (100%) rename regression/{cpp-from-CVS/Templates4 => cbmc-cpp/Templates16}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates17/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor10 => cbmc-cpp/Templates17}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates18/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor12 => cbmc-cpp/Templates18}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates19/main.cpp (92%) create mode 100644 regression/cbmc-cpp/Templates19/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates20/main.cpp (100%) rename regression/{cpp-from-CVS/Templates6 => cbmc-cpp/Templates20}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates21/main.cpp (100%) create mode 100644 regression/cbmc-cpp/Templates21/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates22/main.cpp (89%) create mode 100644 regression/cbmc-cpp/Templates22/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates23/main.cpp (100%) create mode 100644 regression/cbmc-cpp/Templates23/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates24/main.cpp (100%) create mode 100644 regression/cbmc-cpp/Templates24/test.desc create mode 100644 regression/cbmc-cpp/Templates25/main.cpp create mode 100644 regression/cbmc-cpp/Templates25/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates26/main.cpp (100%) create mode 100644 regression/cbmc-cpp/Templates26/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates27/main.cpp (100%) rename regression/{cpp-from-CVS/Templates9 => cbmc-cpp/Templates27}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates28/main.cpp (90%) create mode 100644 regression/cbmc-cpp/Templates28/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates29/main.cpp (100%) rename regression/{cpp-from-CVS/Temporary1 => cbmc-cpp/Templates29}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates3/main.cpp (91%) create mode 100644 regression/cbmc-cpp/Templates3/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates30/main.cpp (89%) create mode 100644 regression/cbmc-cpp/Templates30/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Templates31/main.cpp (100%) rename regression/{cpp-from-CVS/Temporary2 => cbmc-cpp/Templates31}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates32/main.cpp (100%) rename regression/{cpp-from-CVS/Typecast2 => cbmc-cpp/Templates32}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates34/main.cpp (100%) rename regression/{cpp-from-CVS/Vector1 => cbmc-cpp/Templates34}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates35/main.cpp (100%) rename regression/{cpp-from-CVS/extractbits1 => cbmc-cpp/Templates35}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates36/main.cpp (100%) rename regression/{cpp-from-CVS/initialization2 => cbmc-cpp/Templates36}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates4/main.cpp (100%) rename regression/{cpp-from-CVS/initialization4 => cbmc-cpp/Templates4}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates5/main.cpp (100%) rename regression/{cpp-from-CVS/initialization7 => cbmc-cpp/Templates5}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates6/main.cpp (100%) rename regression/{cpp-from-CVS/namespace2 => cbmc-cpp/Templates6}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates8/main.cpp (100%) rename regression/{cpp-from-CVS/union1 => cbmc-cpp/Templates8}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Templates9/main.cpp (100%) rename regression/{cpp-from-CVS/virtual1 => cbmc-cpp/Templates9}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Temporary1/main.cpp (100%) rename regression/{cpp-from-CVS/virtual13 => cbmc-cpp/Temporary1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Temporary2/main.cpp (100%) rename regression/{cpp-from-CVS/virtual14 => cbmc-cpp/Temporary2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Typecast1/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor13 => cbmc-cpp/Typecast1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Typecast2/main.cpp (100%) rename regression/{cpp-from-CVS/virtual15 => cbmc-cpp/Typecast2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Typedef1/main.cpp (88%) create mode 100644 regression/cbmc-cpp/Typedef1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/Typedef2/main.cpp (100%) rename regression/{cpp-from-CVS/virtual4 => cbmc-cpp/Typedef2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Typedef3/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor6 => cbmc-cpp/Typedef3}/test.desc (89%) rename regression/{cpp-from-CVS => cbmc-cpp}/Vector1/lib/container (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Vector1/lib/iterator (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Vector1/lib/list (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Vector1/lib/vector (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/Vector1/main.cpp (100%) rename regression/{cpp-from-CVS/Conversion5 => cbmc-cpp/Vector1}/test.desc (89%) rename regression/{cpp-from-CVS => cbmc-cpp}/Zero_Initializer1/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor9 => cbmc-cpp/Zero_Initializer1}/test.desc (89%) rename regression/{cpp-from-CVS => cbmc-cpp}/argv1/main.cpp (88%) create mode 100644 regression/cbmc-cpp/argv1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/const_cast1/main.cpp (89%) create mode 100644 regression/cbmc-cpp/const_cast1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/extractbits1/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor5 => cbmc-cpp/extractbits1}/test.desc (89%) rename regression/{cpp-from-CVS => cbmc-cpp}/for1/main.cpp (79%) create mode 100644 regression/cbmc-cpp/for1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/initialization1/main.cpp (100%) create mode 100644 regression/cbmc-cpp/initialization1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/initialization2/main.cpp (100%) create mode 100644 regression/cbmc-cpp/initialization2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/initialization3/main.cpp (81%) rename regression/{cpp-from-CVS => cbmc-cpp}/initialization3/test.desc (70%) rename regression/{cpp-from-CVS => cbmc-cpp}/initialization4/main.cpp (100%) create mode 100644 regression/cbmc-cpp/initialization4/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/initialization5/main.cpp (90%) create mode 100644 regression/cbmc-cpp/initialization5/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/initialization6/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/initialization6/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/initialization7/main.cpp (100%) create mode 100644 regression/cbmc-cpp/initialization7/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/namespace1/main.cpp (92%) create mode 100644 regression/cbmc-cpp/namespace1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/namespace2/main.cpp (100%) create mode 100644 regression/cbmc-cpp/namespace2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/namespace3/main.cpp (85%) create mode 100644 regression/cbmc-cpp/namespace3/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/new1/main.cpp (92%) rename regression/{cpp-from-CVS => cbmc-cpp}/new1/test.desc (74%) rename regression/{cpp-from-CVS => cbmc-cpp}/operators/main.cpp (96%) create mode 100644 regression/cbmc-cpp/operators/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/reinterpret_cast1/main.cpp (88%) rename regression/{cpp-from-CVS => cbmc-cpp}/reinterpret_cast1/test.desc (74%) rename regression/{cpp-from-CVS => cbmc-cpp}/reinterpret_cast2/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor15 => cbmc-cpp/reinterpret_cast2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/static_cast1/main.cpp (83%) create mode 100644 regression/cbmc-cpp/static_cast1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/static_cast2/main.cpp (100%) rename regression/{cpp-from-CVS/Reference5 => cbmc-cpp/static_cast2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/static_cast3/main.cpp (92%) create mode 100644 regression/cbmc-cpp/static_cast3/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/static_cast4/main.cpp (100%) rename regression/{cpp-from-CVS/Templates15 => cbmc-cpp/static_cast4}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/static_cast5/main.cpp (93%) create mode 100644 regression/cbmc-cpp/static_cast5/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/struct1/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor2 => cbmc-cpp/struct1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/typecast_ambiguity3/main.cpp (100%) create mode 100644 regression/cbmc-cpp/typecast_ambiguity3/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/typename1/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor3 => cbmc-cpp/typename1}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/typename2/main.cpp (100%) rename regression/{cpp-from-CVS/Constructor4 => cbmc-cpp/typename2}/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/union1/main.cpp (100%) create mode 100644 regression/cbmc-cpp/union1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/virtual1/main.cpp (100%) create mode 100644 regression/cbmc-cpp/virtual1/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/virtual10/main.cpp (90%) create mode 100644 regression/cbmc-cpp/virtual10/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/virtual11/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual11/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual12/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual12/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual13/main.cpp (100%) create mode 100644 regression/cbmc-cpp/virtual13/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/virtual14/main.cpp (100%) create mode 100644 regression/cbmc-cpp/virtual14/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/virtual15/main.cpp (100%) create mode 100644 regression/cbmc-cpp/virtual15/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/virtual2/main.cpp (89%) create mode 100644 regression/cbmc-cpp/virtual2/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/virtual3/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual3/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual4/main.cpp (100%) create mode 100644 regression/cbmc-cpp/virtual4/test.desc rename regression/{cpp-from-CVS => cbmc-cpp}/virtual5/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual5/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual6/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual6/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual7/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual7/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual8/main.cpp (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual8/test.desc (100%) rename regression/{cpp-from-CVS => cbmc-cpp}/virtual9/main.cpp (87%) create mode 100644 regression/cbmc-cpp/virtual9/test.desc delete mode 100644 regression/cpp-from-CVS/Conversion6/test.desc delete mode 100644 regression/cpp-from-CVS/Conversion_Operator2/test.desc delete mode 100644 regression/cpp-from-CVS/Conversion_Operator3/test.desc delete mode 100644 regression/cpp-from-CVS/Conversion_Operator4/test.desc delete mode 100644 regression/cpp-from-CVS/Default_Arguments1/test.desc delete mode 100644 regression/cpp-from-CVS/Default_Arguments2/test.desc delete mode 100644 regression/cpp-from-CVS/Destructor3/test.desc delete mode 100644 regression/cpp-from-CVS/Destructor4/test.desc delete mode 100644 regression/cpp-from-CVS/Destructor5/test.desc delete mode 100644 regression/cpp-from-CVS/Destructor_with_PtrMember/test.desc delete mode 100644 regression/cpp-from-CVS/Float1/test.desc delete mode 100644 regression/cpp-from-CVS/Friend1/test.desc delete mode 100644 regression/cpp-from-CVS/Friend3/test.desc delete mode 100644 regression/cpp-from-CVS/Friend5/test.desc delete mode 100644 regression/cpp-from-CVS/Function_Arguments1/test.desc delete mode 100644 regression/cpp-from-CVS/Function_Arguments2/test.desc delete mode 100644 regression/cpp-from-CVS/Function_Arguments5/test.desc delete mode 100644 regression/cpp-from-CVS/Function_Pointer1/test.desc delete mode 100644 regression/cpp-from-CVS/Implicit_Conversion1/test.desc delete mode 100644 regression/cpp-from-CVS/Implicit_Conversion4/test.desc delete mode 100644 regression/cpp-from-CVS/Implicit_Conversion6/test.desc delete mode 100644 regression/cpp-from-CVS/Implicit_Conversion7/test.desc delete mode 100644 regression/cpp-from-CVS/Implicit_Conversion9/test.desc delete mode 100644 regression/cpp-from-CVS/Inheritance1/test.desc delete mode 100644 regression/cpp-from-CVS/Inheritance3/test.desc delete mode 100644 regression/cpp-from-CVS/Inheritance4/test.desc delete mode 100644 regression/cpp-from-CVS/Initializer1/test.desc delete mode 100644 regression/cpp-from-CVS/Label0/test.desc delete mode 100644 regression/cpp-from-CVS/Makefile delete mode 100644 regression/cpp-from-CVS/Member_Access_in_Class/test.desc delete mode 100644 regression/cpp-from-CVS/Mutable1/test.desc delete mode 100644 regression/cpp-from-CVS/Overloading_Functions1/test.desc delete mode 100644 regression/cpp-from-CVS/Overloading_Functions3/test.desc delete mode 100644 regression/cpp-from-CVS/Overloading_Functions4/test.desc delete mode 100644 regression/cpp-from-CVS/Overloading_Increment1/test.desc delete mode 100644 regression/cpp-from-CVS/Overloading_Members1/test.desc delete mode 100644 regression/cpp-from-CVS/Overloading_Operators12/test.desc delete mode 100644 regression/cpp-from-CVS/Overloading_Operators13/test.desc delete mode 100644 regression/cpp-from-CVS/Overloading_Operators2/test.desc delete mode 100644 regression/cpp-from-CVS/Overloading_Operators7/test.desc delete mode 100644 regression/cpp-from-CVS/Overloading_Operators8/test.desc delete mode 100644 regression/cpp-from-CVS/Pointer_Conversion2/test.desc delete mode 100644 regression/cpp-from-CVS/Pointer_To_Member1/test.desc delete mode 100644 regression/cpp-from-CVS/Pointer_To_Member5/test.desc delete mode 100644 regression/cpp-from-CVS/Protection2/test.desc delete mode 100644 regression/cpp-from-CVS/Protection7/test.desc delete mode 100644 regression/cpp-from-CVS/Qualifier2/test.desc delete mode 100644 regression/cpp-from-CVS/Reference2/test.desc delete mode 100644 regression/cpp-from-CVS/Reference3/test.desc delete mode 100644 regression/cpp-from-CVS/Reference6/test.desc delete mode 100644 regression/cpp-from-CVS/Reference7/test.desc delete mode 100644 regression/cpp-from-CVS/Resolver6/test.desc delete mode 100644 regression/cpp-from-CVS/Resolver7/test.desc delete mode 100644 regression/cpp-from-CVS/Resolver8/test.desc delete mode 100644 regression/cpp-from-CVS/Resolver9/test.desc delete mode 100644 regression/cpp-from-CVS/Static_Member1/test.desc delete mode 100644 regression/cpp-from-CVS/Static_Member_Function/test.desc delete mode 100644 regression/cpp-from-CVS/Static_Method1/test.desc delete mode 100644 regression/cpp-from-CVS/String_Literal1/test.desc delete mode 100644 regression/cpp-from-CVS/Templates1/test.desc delete mode 100644 regression/cpp-from-CVS/Templates10/test.desc delete mode 100644 regression/cpp-from-CVS/Templates11/test.desc delete mode 100644 regression/cpp-from-CVS/Templates12/test.desc delete mode 100644 regression/cpp-from-CVS/Templates13/test.desc delete mode 100644 regression/cpp-from-CVS/Templates14/test.desc delete mode 100644 regression/cpp-from-CVS/Templates17/test.desc delete mode 100644 regression/cpp-from-CVS/Templates18/test.desc delete mode 100644 regression/cpp-from-CVS/Templates19/test.desc delete mode 100644 regression/cpp-from-CVS/Templates21/test.desc delete mode 100644 regression/cpp-from-CVS/Templates22/test.desc delete mode 100644 regression/cpp-from-CVS/Templates23/test.desc delete mode 100644 regression/cpp-from-CVS/Templates24/test.desc delete mode 100644 regression/cpp-from-CVS/Templates25/main.cpp delete mode 100644 regression/cpp-from-CVS/Templates25/test.desc delete mode 100644 regression/cpp-from-CVS/Templates26/test.desc delete mode 100644 regression/cpp-from-CVS/Templates28/test.desc delete mode 100644 regression/cpp-from-CVS/Templates3/test.desc delete mode 100644 regression/cpp-from-CVS/Templates30/test.desc delete mode 100644 regression/cpp-from-CVS/Templates33/test.desc delete mode 100644 regression/cpp-from-CVS/Templates35/test.desc delete mode 100644 regression/cpp-from-CVS/Templates5/test.desc delete mode 100644 regression/cpp-from-CVS/Templates8/test.desc delete mode 100644 regression/cpp-from-CVS/Typecast1/test.desc delete mode 100644 regression/cpp-from-CVS/Typedef1/test.desc delete mode 100644 regression/cpp-from-CVS/Typedef2/test.desc delete mode 100644 regression/cpp-from-CVS/Typedef3/test.desc delete mode 100644 regression/cpp-from-CVS/Zero_Initializer1/test.desc delete mode 100644 regression/cpp-from-CVS/argv1/test.desc delete mode 100644 regression/cpp-from-CVS/const_cast1/test.desc delete mode 100644 regression/cpp-from-CVS/for1/test.desc delete mode 100644 regression/cpp-from-CVS/initialization1/test.desc delete mode 100644 regression/cpp-from-CVS/initialization5/test.desc delete mode 100644 regression/cpp-from-CVS/namespace1/test.desc delete mode 100644 regression/cpp-from-CVS/namespace3/test.desc delete mode 100644 regression/cpp-from-CVS/operators/test.desc delete mode 100644 regression/cpp-from-CVS/reinterpret_cast2/test.desc delete mode 100644 regression/cpp-from-CVS/static_cast1/test.desc delete mode 100644 regression/cpp-from-CVS/static_cast3/test.desc delete mode 100644 regression/cpp-from-CVS/static_cast5/test.desc delete mode 100644 regression/cpp-from-CVS/struct1/test.desc delete mode 100644 regression/cpp-from-CVS/typecast_ambiguity3/test.desc delete mode 100644 regression/cpp-from-CVS/typename1/test.desc delete mode 100644 regression/cpp-from-CVS/typename2/test.desc delete mode 100644 regression/cpp-from-CVS/virtual10/test.desc delete mode 100644 regression/cpp-from-CVS/virtual2/test.desc delete mode 100644 regression/cpp-from-CVS/virtual9/test.desc rename regression/{cpp-from-CVS => cpp}/Address_of_Method4/main.cpp (100%) create mode 100644 regression/cpp/Address_of_Method4/test.desc rename regression/{cpp-from-CVS => cpp}/Protection1/main.cpp (66%) rename regression/{cpp-from-CVS/static_cast2 => cpp/Protection1}/test.desc (88%) rename regression/{cpp-from-CVS => cpp}/Templates15/main.cpp (100%) rename regression/{cpp-from-CVS/static_cast4 => cpp/Templates15}/test.desc (88%) rename regression/{cpp-from-CVS => cpp}/Templates33/main.cpp (100%) create mode 100644 regression/cpp/Templates33/test.desc diff --git a/regression/cpp-from-CVS/Address_of_Method1/main.cpp b/regression/cbmc-cpp/Address_of_Method1/main.cpp similarity index 86% rename from regression/cpp-from-CVS/Address_of_Method1/main.cpp rename to regression/cbmc-cpp/Address_of_Method1/main.cpp index 8af3f1f740b..1219581b3ff 100644 --- a/regression/cpp-from-CVS/Address_of_Method1/main.cpp +++ b/regression/cbmc-cpp/Address_of_Method1/main.cpp @@ -1,3 +1,4 @@ +#include struct x { void f(); diff --git a/regression/cbmc-cpp/Address_of_Method1/test.desc b/regression/cbmc-cpp/Address_of_Method1/test.desc new file mode 100644 index 00000000000..7791be248c7 --- /dev/null +++ b/regression/cbmc-cpp/Address_of_Method1/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Anonymous_members1/main.cpp b/regression/cbmc-cpp/Anonymous_members1/main.cpp similarity index 95% rename from regression/cpp-from-CVS/Anonymous_members1/main.cpp rename to regression/cbmc-cpp/Anonymous_members1/main.cpp index 6a0998beca5..3013fb944de 100644 --- a/regression/cpp-from-CVS/Anonymous_members1/main.cpp +++ b/regression/cbmc-cpp/Anonymous_members1/main.cpp @@ -1,3 +1,4 @@ +#include typedef unsigned DWORD; typedef signed LONG; typedef long long LONGLONG; diff --git a/regression/cbmc-cpp/Anonymous_members1/test.desc b/regression/cbmc-cpp/Anonymous_members1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Anonymous_members1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Array1/main.cpp b/regression/cbmc-cpp/Array1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Array1/main.cpp rename to regression/cbmc-cpp/Array1/main.cpp diff --git a/regression/cpp-from-CVS/Array1/test.desc b/regression/cbmc-cpp/Array1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Array1/test.desc rename to regression/cbmc-cpp/Array1/test.desc diff --git a/regression/cpp-from-CVS/Array2/main.cpp b/regression/cbmc-cpp/Array2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Array2/main.cpp rename to regression/cbmc-cpp/Array2/main.cpp diff --git a/regression/cpp-from-CVS/Array2/test.desc b/regression/cbmc-cpp/Array2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Array2/test.desc rename to regression/cbmc-cpp/Array2/test.desc diff --git a/regression/cpp-from-CVS/Array3/main.cpp b/regression/cbmc-cpp/Array3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Array3/main.cpp rename to regression/cbmc-cpp/Array3/main.cpp diff --git a/regression/cpp-from-CVS/Constructor14/test.desc b/regression/cbmc-cpp/Array3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor14/test.desc rename to regression/cbmc-cpp/Array3/test.desc diff --git a/regression/cpp-from-CVS/Array4/elsewhere.cpp b/regression/cbmc-cpp/Array4/elsewhere.cpp similarity index 100% rename from regression/cpp-from-CVS/Array4/elsewhere.cpp rename to regression/cbmc-cpp/Array4/elsewhere.cpp diff --git a/regression/cpp-from-CVS/Array4/main.cpp b/regression/cbmc-cpp/Array4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Array4/main.cpp rename to regression/cbmc-cpp/Array4/main.cpp diff --git a/regression/cpp-from-CVS/Array4/test.desc b/regression/cbmc-cpp/Array4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Array4/test.desc rename to regression/cbmc-cpp/Array4/test.desc diff --git a/regression/cpp-from-CVS/Assignment1/main.cpp b/regression/cbmc-cpp/Assignment1/main.cpp similarity index 94% rename from regression/cpp-from-CVS/Assignment1/main.cpp rename to regression/cbmc-cpp/Assignment1/main.cpp index 96c88255e0c..78760e92e2f 100644 --- a/regression/cpp-from-CVS/Assignment1/main.cpp +++ b/regression/cbmc-cpp/Assignment1/main.cpp @@ -1,3 +1,4 @@ +#include struct A { int i;}; struct B diff --git a/regression/cbmc-cpp/Assignment1/test.desc b/regression/cbmc-cpp/Assignment1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Assignment1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Class_Members1/main.cpp b/regression/cbmc-cpp/Class_Members1/main.cpp similarity index 92% rename from regression/cpp-from-CVS/Class_Members1/main.cpp rename to regression/cbmc-cpp/Class_Members1/main.cpp index 5d6a2934abc..e877c105ef9 100644 --- a/regression/cpp-from-CVS/Class_Members1/main.cpp +++ b/regression/cbmc-cpp/Class_Members1/main.cpp @@ -1,3 +1,4 @@ +#include class t { public: diff --git a/regression/cbmc-cpp/Class_Members1/test.desc b/regression/cbmc-cpp/Class_Members1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Class_Members1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Comma_Operator1/main.cpp b/regression/cbmc-cpp/Comma_Operator1/main.cpp similarity index 82% rename from regression/cpp-from-CVS/Comma_Operator1/main.cpp rename to regression/cbmc-cpp/Comma_Operator1/main.cpp index 1a768ab5ae6..cc6c58302f0 100644 --- a/regression/cpp-from-CVS/Comma_Operator1/main.cpp +++ b/regression/cbmc-cpp/Comma_Operator1/main.cpp @@ -1,3 +1,4 @@ +#include int main() { int s=0; diff --git a/regression/cbmc-cpp/Comma_Operator1/test.desc b/regression/cbmc-cpp/Comma_Operator1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Comma_Operator1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/ConditionalExpression1/main.cpp b/regression/cbmc-cpp/ConditionalExpression1/main.cpp similarity index 89% rename from regression/cpp-from-CVS/ConditionalExpression1/main.cpp rename to regression/cbmc-cpp/ConditionalExpression1/main.cpp index 2cb27b71ebc..a00db6f6993 100644 --- a/regression/cpp-from-CVS/ConditionalExpression1/main.cpp +++ b/regression/cbmc-cpp/ConditionalExpression1/main.cpp @@ -1,3 +1,4 @@ +#include int main() { bool b; diff --git a/regression/cbmc-cpp/ConditionalExpression1/test.desc b/regression/cbmc-cpp/ConditionalExpression1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/ConditionalExpression1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/ConditionalExpression2/main.cpp b/regression/cbmc-cpp/ConditionalExpression2/main.cpp similarity index 83% rename from regression/cpp-from-CVS/ConditionalExpression2/main.cpp rename to regression/cbmc-cpp/ConditionalExpression2/main.cpp index 46de51d6aff..9aceeebafb1 100644 --- a/regression/cpp-from-CVS/ConditionalExpression2/main.cpp +++ b/regression/cbmc-cpp/ConditionalExpression2/main.cpp @@ -1,3 +1,4 @@ +#include char a[1]; char b[2]; diff --git a/regression/cbmc-cpp/ConditionalExpression2/test.desc b/regression/cbmc-cpp/ConditionalExpression2/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/ConditionalExpression2/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Constant5/main.cpp b/regression/cbmc-cpp/Constant5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Constant5/main.cpp rename to regression/cbmc-cpp/Constant5/main.cpp diff --git a/regression/cpp-from-CVS/Constant5/test.desc b/regression/cbmc-cpp/Constant5/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constant5/test.desc rename to regression/cbmc-cpp/Constant5/test.desc diff --git a/regression/cpp-from-CVS/Constructor1/main.cpp b/regression/cbmc-cpp/Constructor1/main.cpp similarity index 94% rename from regression/cpp-from-CVS/Constructor1/main.cpp rename to regression/cbmc-cpp/Constructor1/main.cpp index 134b4176717..5c0f04501c7 100644 --- a/regression/cpp-from-CVS/Constructor1/main.cpp +++ b/regression/cbmc-cpp/Constructor1/main.cpp @@ -1,3 +1,4 @@ +#include class t1 { public: diff --git a/regression/cbmc-cpp/Constructor1/test.desc b/regression/cbmc-cpp/Constructor1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Constructor1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Constructor10/main.cpp b/regression/cbmc-cpp/Constructor10/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Constructor10/main.cpp rename to regression/cbmc-cpp/Constructor10/main.cpp diff --git a/regression/cpp-from-CVS/Address_of_Method1/test.desc b/regression/cbmc-cpp/Constructor10/test.desc similarity index 100% rename from regression/cpp-from-CVS/Address_of_Method1/test.desc rename to regression/cbmc-cpp/Constructor10/test.desc diff --git a/regression/cpp-from-CVS/Constructor11/main.cpp b/regression/cbmc-cpp/Constructor11/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Constructor11/main.cpp rename to regression/cbmc-cpp/Constructor11/main.cpp diff --git a/regression/cpp-from-CVS/Constructor11/test.desc b/regression/cbmc-cpp/Constructor11/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor11/test.desc rename to regression/cbmc-cpp/Constructor11/test.desc diff --git a/regression/cpp-from-CVS/Constructor12/main.cpp b/regression/cbmc-cpp/Constructor12/main.cpp similarity index 92% rename from regression/cpp-from-CVS/Constructor12/main.cpp rename to regression/cbmc-cpp/Constructor12/main.cpp index 3158f9a553c..fec097a8de0 100644 --- a/regression/cpp-from-CVS/Constructor12/main.cpp +++ b/regression/cbmc-cpp/Constructor12/main.cpp @@ -1,3 +1,4 @@ +#include struct A { int i; diff --git a/regression/cbmc-cpp/Constructor12/test.desc b/regression/cbmc-cpp/Constructor12/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Constructor12/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Constructor13/main.cpp b/regression/cbmc-cpp/Constructor13/main.cpp similarity index 95% rename from regression/cpp-from-CVS/Constructor13/main.cpp rename to regression/cbmc-cpp/Constructor13/main.cpp index cabf296c968..8694b21b0ad 100644 --- a/regression/cpp-from-CVS/Constructor13/main.cpp +++ b/regression/cbmc-cpp/Constructor13/main.cpp @@ -1,3 +1,4 @@ +#include int g; class A { public: diff --git a/regression/cbmc-cpp/Constructor13/test.desc b/regression/cbmc-cpp/Constructor13/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Constructor13/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Constructor14/main.cpp b/regression/cbmc-cpp/Constructor14/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Constructor14/main.cpp rename to regression/cbmc-cpp/Constructor14/main.cpp diff --git a/regression/cpp-from-CVS/Constructor17/test.desc b/regression/cbmc-cpp/Constructor14/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor17/test.desc rename to regression/cbmc-cpp/Constructor14/test.desc diff --git a/regression/cpp-from-CVS/Constructor15/main.cpp b/regression/cbmc-cpp/Constructor15/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Constructor15/main.cpp rename to regression/cbmc-cpp/Constructor15/main.cpp diff --git a/regression/cpp-from-CVS/Address_of_Method4/test.desc b/regression/cbmc-cpp/Constructor15/test.desc similarity index 100% rename from regression/cpp-from-CVS/Address_of_Method4/test.desc rename to regression/cbmc-cpp/Constructor15/test.desc diff --git a/regression/cpp-from-CVS/Constructor16/main.cpp b/regression/cbmc-cpp/Constructor16/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Constructor16/main.cpp rename to regression/cbmc-cpp/Constructor16/main.cpp diff --git a/regression/cpp-from-CVS/Constructor16/test.desc b/regression/cbmc-cpp/Constructor16/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor16/test.desc rename to regression/cbmc-cpp/Constructor16/test.desc diff --git a/regression/cpp-from-CVS/Constructor17/main.cpp b/regression/cbmc-cpp/Constructor17/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Constructor17/main.cpp rename to regression/cbmc-cpp/Constructor17/main.cpp diff --git a/regression/cpp-from-CVS/Conversion1/test.desc b/regression/cbmc-cpp/Constructor17/test.desc similarity index 100% rename from regression/cpp-from-CVS/Conversion1/test.desc rename to regression/cbmc-cpp/Constructor17/test.desc diff --git a/regression/cpp-from-CVS/Constructor2/main.cpp b/regression/cbmc-cpp/Constructor2/main.cpp similarity index 92% rename from regression/cpp-from-CVS/Constructor2/main.cpp rename to regression/cbmc-cpp/Constructor2/main.cpp index 0dd3b7cdaf7..b38e44ca8f2 100644 --- a/regression/cpp-from-CVS/Constructor2/main.cpp +++ b/regression/cbmc-cpp/Constructor2/main.cpp @@ -1,3 +1,4 @@ +#include class t1 { public: diff --git a/regression/cbmc-cpp/Constructor2/test.desc b/regression/cbmc-cpp/Constructor2/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Constructor2/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Constructor3/main.cpp b/regression/cbmc-cpp/Constructor3/main.cpp similarity index 87% rename from regression/cpp-from-CVS/Constructor3/main.cpp rename to regression/cbmc-cpp/Constructor3/main.cpp index 68403e21ef9..90719ef9acb 100644 --- a/regression/cpp-from-CVS/Constructor3/main.cpp +++ b/regression/cbmc-cpp/Constructor3/main.cpp @@ -1,3 +1,4 @@ +#include class x { public: diff --git a/regression/cbmc-cpp/Constructor3/test.desc b/regression/cbmc-cpp/Constructor3/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Constructor3/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Constructor4/main.cpp b/regression/cbmc-cpp/Constructor4/main.cpp similarity index 82% rename from regression/cpp-from-CVS/Constructor4/main.cpp rename to regression/cbmc-cpp/Constructor4/main.cpp index d099a90572d..fa50e22d115 100644 --- a/regression/cpp-from-CVS/Constructor4/main.cpp +++ b/regression/cbmc-cpp/Constructor4/main.cpp @@ -1,3 +1,4 @@ +#include struct x { int *q; diff --git a/regression/cbmc-cpp/Constructor4/test.desc b/regression/cbmc-cpp/Constructor4/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Constructor4/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Constructor5/main.cpp b/regression/cbmc-cpp/Constructor5/main.cpp similarity index 88% rename from regression/cpp-from-CVS/Constructor5/main.cpp rename to regression/cbmc-cpp/Constructor5/main.cpp index 9d90aed92a4..b335b2dc8dd 100644 --- a/regression/cpp-from-CVS/Constructor5/main.cpp +++ b/regression/cbmc-cpp/Constructor5/main.cpp @@ -1,3 +1,4 @@ +#include class x { private: diff --git a/regression/cbmc-cpp/Constructor5/test.desc b/regression/cbmc-cpp/Constructor5/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Constructor5/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Constructor6/main.cpp b/regression/cbmc-cpp/Constructor6/main.cpp similarity index 89% rename from regression/cpp-from-CVS/Constructor6/main.cpp rename to regression/cbmc-cpp/Constructor6/main.cpp index a5f9a26f7a8..382bd0a5b3b 100644 --- a/regression/cpp-from-CVS/Constructor6/main.cpp +++ b/regression/cbmc-cpp/Constructor6/main.cpp @@ -1,3 +1,4 @@ +#include int counter=1; struct T diff --git a/regression/cbmc-cpp/Constructor6/test.desc b/regression/cbmc-cpp/Constructor6/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Constructor6/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Constructor9/main.cpp b/regression/cbmc-cpp/Constructor9/main.cpp similarity index 95% rename from regression/cpp-from-CVS/Constructor9/main.cpp rename to regression/cbmc-cpp/Constructor9/main.cpp index 0bf1f800562..fc0cebada20 100644 --- a/regression/cpp-from-CVS/Constructor9/main.cpp +++ b/regression/cbmc-cpp/Constructor9/main.cpp @@ -1,3 +1,4 @@ +#include // Default Initialization of arrays class B { diff --git a/regression/cbmc-cpp/Constructor9/test.desc b/regression/cbmc-cpp/Constructor9/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Constructor9/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Conversion1/main.cpp b/regression/cbmc-cpp/Conversion1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Conversion1/main.cpp rename to regression/cbmc-cpp/Conversion1/main.cpp diff --git a/regression/cpp-from-CVS/Conversion4/test.desc b/regression/cbmc-cpp/Conversion1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Conversion4/test.desc rename to regression/cbmc-cpp/Conversion1/test.desc diff --git a/regression/cpp-from-CVS/Conversion10/main.cpp b/regression/cbmc-cpp/Conversion10/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Conversion10/main.cpp rename to regression/cbmc-cpp/Conversion10/main.cpp diff --git a/regression/cpp-from-CVS/Conversion10/test.desc b/regression/cbmc-cpp/Conversion10/test.desc similarity index 100% rename from regression/cpp-from-CVS/Conversion10/test.desc rename to regression/cbmc-cpp/Conversion10/test.desc diff --git a/regression/cpp-from-CVS/Conversion11/main.cpp b/regression/cbmc-cpp/Conversion11/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Conversion11/main.cpp rename to regression/cbmc-cpp/Conversion11/main.cpp diff --git a/regression/cpp-from-CVS/Conversion11/test.desc b/regression/cbmc-cpp/Conversion11/test.desc similarity index 100% rename from regression/cpp-from-CVS/Conversion11/test.desc rename to regression/cbmc-cpp/Conversion11/test.desc diff --git a/regression/cpp-from-CVS/Conversion3/main.cpp b/regression/cbmc-cpp/Conversion3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Conversion3/main.cpp rename to regression/cbmc-cpp/Conversion3/main.cpp diff --git a/regression/cpp-from-CVS/Conversion3/test.desc b/regression/cbmc-cpp/Conversion3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Conversion3/test.desc rename to regression/cbmc-cpp/Conversion3/test.desc diff --git a/regression/cpp-from-CVS/Conversion4/main.cpp b/regression/cbmc-cpp/Conversion4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Conversion4/main.cpp rename to regression/cbmc-cpp/Conversion4/main.cpp diff --git a/regression/cpp-from-CVS/Conversion9/test.desc b/regression/cbmc-cpp/Conversion4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Conversion9/test.desc rename to regression/cbmc-cpp/Conversion4/test.desc diff --git a/regression/cpp-from-CVS/Conversion5/main.cpp b/regression/cbmc-cpp/Conversion5/main.cpp similarity index 80% rename from regression/cpp-from-CVS/Conversion5/main.cpp rename to regression/cbmc-cpp/Conversion5/main.cpp index bac3701b6c7..f0d8e927b8f 100644 --- a/regression/cpp-from-CVS/Conversion5/main.cpp +++ b/regression/cbmc-cpp/Conversion5/main.cpp @@ -1,3 +1,4 @@ +#include int main() { unsigned i = 1; diff --git a/regression/cbmc-cpp/Conversion5/test.desc b/regression/cbmc-cpp/Conversion5/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Conversion5/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Conversion6/main.cpp b/regression/cbmc-cpp/Conversion6/main.cpp similarity index 93% rename from regression/cpp-from-CVS/Conversion6/main.cpp rename to regression/cbmc-cpp/Conversion6/main.cpp index 53d3b28d240..9753d04b383 100644 --- a/regression/cpp-from-CVS/Conversion6/main.cpp +++ b/regression/cbmc-cpp/Conversion6/main.cpp @@ -1,3 +1,4 @@ +#include struct A { int i; diff --git a/regression/cbmc-cpp/Conversion6/test.desc b/regression/cbmc-cpp/Conversion6/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Conversion6/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Conversion7/main.cpp b/regression/cbmc-cpp/Conversion7/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Conversion7/main.cpp rename to regression/cbmc-cpp/Conversion7/main.cpp diff --git a/regression/cpp-from-CVS/Conversion7/test.desc b/regression/cbmc-cpp/Conversion7/test.desc similarity index 100% rename from regression/cpp-from-CVS/Conversion7/test.desc rename to regression/cbmc-cpp/Conversion7/test.desc diff --git a/regression/cpp-from-CVS/Conversion8/main.cpp b/regression/cbmc-cpp/Conversion8/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Conversion8/main.cpp rename to regression/cbmc-cpp/Conversion8/main.cpp diff --git a/regression/cpp-from-CVS/Conversion8/test.desc b/regression/cbmc-cpp/Conversion8/test.desc similarity index 100% rename from regression/cpp-from-CVS/Conversion8/test.desc rename to regression/cbmc-cpp/Conversion8/test.desc diff --git a/regression/cpp-from-CVS/Conversion9/main.cpp b/regression/cbmc-cpp/Conversion9/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Conversion9/main.cpp rename to regression/cbmc-cpp/Conversion9/main.cpp diff --git a/regression/cpp-from-CVS/Conversion_Operator1/test.desc b/regression/cbmc-cpp/Conversion9/test.desc similarity index 100% rename from regression/cpp-from-CVS/Conversion_Operator1/test.desc rename to regression/cbmc-cpp/Conversion9/test.desc diff --git a/regression/cpp-from-CVS/Conversion_Operator1/main.cpp b/regression/cbmc-cpp/Conversion_Operator1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Conversion_Operator1/main.cpp rename to regression/cbmc-cpp/Conversion_Operator1/main.cpp diff --git a/regression/cpp-from-CVS/Conversion_Operator5/test.desc b/regression/cbmc-cpp/Conversion_Operator1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Conversion_Operator5/test.desc rename to regression/cbmc-cpp/Conversion_Operator1/test.desc diff --git a/regression/cpp-from-CVS/Conversion_Operator2/main.cpp b/regression/cbmc-cpp/Conversion_Operator2/main.cpp similarity index 91% rename from regression/cpp-from-CVS/Conversion_Operator2/main.cpp rename to regression/cbmc-cpp/Conversion_Operator2/main.cpp index 8dde5fdee8d..695940f2a58 100644 --- a/regression/cpp-from-CVS/Conversion_Operator2/main.cpp +++ b/regression/cbmc-cpp/Conversion_Operator2/main.cpp @@ -1,3 +1,4 @@ +#include struct B { int i; diff --git a/regression/cbmc-cpp/Conversion_Operator2/test.desc b/regression/cbmc-cpp/Conversion_Operator2/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Conversion_Operator2/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Conversion_Operator3/main.cpp b/regression/cbmc-cpp/Conversion_Operator3/main.cpp similarity index 91% rename from regression/cpp-from-CVS/Conversion_Operator3/main.cpp rename to regression/cbmc-cpp/Conversion_Operator3/main.cpp index 08200a3b963..360e4c94214 100644 --- a/regression/cpp-from-CVS/Conversion_Operator3/main.cpp +++ b/regression/cbmc-cpp/Conversion_Operator3/main.cpp @@ -1,3 +1,4 @@ +#include struct A { int i; }; diff --git a/regression/cbmc-cpp/Conversion_Operator3/test.desc b/regression/cbmc-cpp/Conversion_Operator3/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Conversion_Operator3/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Conversion_Operator4/main.cpp b/regression/cbmc-cpp/Conversion_Operator4/main.cpp similarity index 89% rename from regression/cpp-from-CVS/Conversion_Operator4/main.cpp rename to regression/cbmc-cpp/Conversion_Operator4/main.cpp index cc76959191c..34b5bc8e0d0 100644 --- a/regression/cpp-from-CVS/Conversion_Operator4/main.cpp +++ b/regression/cbmc-cpp/Conversion_Operator4/main.cpp @@ -1,3 +1,4 @@ +#include struct A { static const int* const i = 0; diff --git a/regression/cbmc-cpp/Conversion_Operator4/test.desc b/regression/cbmc-cpp/Conversion_Operator4/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Conversion_Operator4/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Conversion_Operator5/main.cpp b/regression/cbmc-cpp/Conversion_Operator5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Conversion_Operator5/main.cpp rename to regression/cbmc-cpp/Conversion_Operator5/main.cpp diff --git a/regression/cpp-from-CVS/Copy_Constructor1/test.desc b/regression/cbmc-cpp/Conversion_Operator5/test.desc similarity index 100% rename from regression/cpp-from-CVS/Copy_Constructor1/test.desc rename to regression/cbmc-cpp/Conversion_Operator5/test.desc diff --git a/regression/cpp-from-CVS/Copy_Constructor1/main.cpp b/regression/cbmc-cpp/Copy_Constructor1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Copy_Constructor1/main.cpp rename to regression/cbmc-cpp/Copy_Constructor1/main.cpp diff --git a/regression/cpp-from-CVS/Copy_Constructor2/test.desc b/regression/cbmc-cpp/Copy_Constructor1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Copy_Constructor2/test.desc rename to regression/cbmc-cpp/Copy_Constructor1/test.desc diff --git a/regression/cpp-from-CVS/Copy_Constructor2/main.cpp b/regression/cbmc-cpp/Copy_Constructor2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Copy_Constructor2/main.cpp rename to regression/cbmc-cpp/Copy_Constructor2/main.cpp diff --git a/regression/cpp-from-CVS/Copy_Constructor3/test.desc b/regression/cbmc-cpp/Copy_Constructor2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Copy_Constructor3/test.desc rename to regression/cbmc-cpp/Copy_Constructor2/test.desc diff --git a/regression/cpp-from-CVS/Copy_Constructor3/main.cpp b/regression/cbmc-cpp/Copy_Constructor3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Copy_Constructor3/main.cpp rename to regression/cbmc-cpp/Copy_Constructor3/main.cpp diff --git a/regression/cpp-from-CVS/Copy_Constructor5/test.desc b/regression/cbmc-cpp/Copy_Constructor3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Copy_Constructor5/test.desc rename to regression/cbmc-cpp/Copy_Constructor3/test.desc diff --git a/regression/cpp-from-CVS/Copy_Constructor5/main.cpp b/regression/cbmc-cpp/Copy_Constructor5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Copy_Constructor5/main.cpp rename to regression/cbmc-cpp/Copy_Constructor5/main.cpp diff --git a/regression/cpp-from-CVS/Copy_Operator1/test.desc b/regression/cbmc-cpp/Copy_Constructor5/test.desc similarity index 100% rename from regression/cpp-from-CVS/Copy_Operator1/test.desc rename to regression/cbmc-cpp/Copy_Constructor5/test.desc diff --git a/regression/cpp-from-CVS/Copy_Operator1/main.cpp b/regression/cbmc-cpp/Copy_Operator1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Copy_Operator1/main.cpp rename to regression/cbmc-cpp/Copy_Operator1/main.cpp diff --git a/regression/cpp-from-CVS/Destructor1/test.desc b/regression/cbmc-cpp/Copy_Operator1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Destructor1/test.desc rename to regression/cbmc-cpp/Copy_Operator1/test.desc diff --git a/regression/cpp-from-CVS/Copy_Operator2/main.cpp b/regression/cbmc-cpp/Copy_Operator2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Copy_Operator2/main.cpp rename to regression/cbmc-cpp/Copy_Operator2/main.cpp diff --git a/regression/cpp-from-CVS/Copy_Operator2/test.desc b/regression/cbmc-cpp/Copy_Operator2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Copy_Operator2/test.desc rename to regression/cbmc-cpp/Copy_Operator2/test.desc diff --git a/regression/cpp-from-CVS/Default_Arguments1/main.cpp b/regression/cbmc-cpp/Default_Arguments1/main.cpp similarity index 94% rename from regression/cpp-from-CVS/Default_Arguments1/main.cpp rename to regression/cbmc-cpp/Default_Arguments1/main.cpp index 6c9ae18e7fe..9a3ce690456 100644 --- a/regression/cpp-from-CVS/Default_Arguments1/main.cpp +++ b/regression/cbmc-cpp/Default_Arguments1/main.cpp @@ -1,3 +1,4 @@ +#include // #include int f(int d=1) diff --git a/regression/cbmc-cpp/Default_Arguments1/test.desc b/regression/cbmc-cpp/Default_Arguments1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Default_Arguments1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Default_Arguments2/main.cpp b/regression/cbmc-cpp/Default_Arguments2/main.cpp similarity index 84% rename from regression/cpp-from-CVS/Default_Arguments2/main.cpp rename to regression/cbmc-cpp/Default_Arguments2/main.cpp index e64102d3251..ce575e23308 100644 --- a/regression/cpp-from-CVS/Default_Arguments2/main.cpp +++ b/regression/cbmc-cpp/Default_Arguments2/main.cpp @@ -1,3 +1,4 @@ +#include int func(int i = 0) {return i;} int main() diff --git a/regression/cbmc-cpp/Default_Arguments2/test.desc b/regression/cbmc-cpp/Default_Arguments2/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Default_Arguments2/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Destructor1/main.cpp b/regression/cbmc-cpp/Destructor1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Destructor1/main.cpp rename to regression/cbmc-cpp/Destructor1/main.cpp diff --git a/regression/cpp-from-CVS/Destructor2/test.desc b/regression/cbmc-cpp/Destructor1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Destructor2/test.desc rename to regression/cbmc-cpp/Destructor1/test.desc diff --git a/regression/cpp-from-CVS/Destructor2/main.cpp b/regression/cbmc-cpp/Destructor2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Destructor2/main.cpp rename to regression/cbmc-cpp/Destructor2/main.cpp diff --git a/regression/cpp-from-CVS/Exception1/test.desc b/regression/cbmc-cpp/Destructor2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Exception1/test.desc rename to regression/cbmc-cpp/Destructor2/test.desc diff --git a/regression/cpp-from-CVS/Destructor3/main.cpp b/regression/cbmc-cpp/Destructor3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Destructor3/main.cpp rename to regression/cbmc-cpp/Destructor3/main.cpp diff --git a/regression/cpp-from-CVS/Anonymous_members1/test.desc b/regression/cbmc-cpp/Destructor3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Anonymous_members1/test.desc rename to regression/cbmc-cpp/Destructor3/test.desc diff --git a/regression/cpp-from-CVS/Destructor4/main.cpp b/regression/cbmc-cpp/Destructor4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Destructor4/main.cpp rename to regression/cbmc-cpp/Destructor4/main.cpp diff --git a/regression/cpp-from-CVS/Array3/test.desc b/regression/cbmc-cpp/Destructor4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Array3/test.desc rename to regression/cbmc-cpp/Destructor4/test.desc diff --git a/regression/cpp-from-CVS/Destructor5/main.cpp b/regression/cbmc-cpp/Destructor5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Destructor5/main.cpp rename to regression/cbmc-cpp/Destructor5/main.cpp diff --git a/regression/cpp-from-CVS/Assignment1/test.desc b/regression/cbmc-cpp/Destructor5/test.desc similarity index 100% rename from regression/cpp-from-CVS/Assignment1/test.desc rename to regression/cbmc-cpp/Destructor5/test.desc diff --git a/regression/cpp-from-CVS/Destructor_with_PtrMember/main.cpp b/regression/cbmc-cpp/Destructor_with_PtrMember/main.cpp similarity index 96% rename from regression/cpp-from-CVS/Destructor_with_PtrMember/main.cpp rename to regression/cbmc-cpp/Destructor_with_PtrMember/main.cpp index 87aeca536dc..d8ce194bb53 100644 --- a/regression/cpp-from-CVS/Destructor_with_PtrMember/main.cpp +++ b/regression/cbmc-cpp/Destructor_with_PtrMember/main.cpp @@ -1,3 +1,4 @@ +#include int global; class test_class { diff --git a/regression/cbmc-cpp/Destructor_with_PtrMember/test.desc b/regression/cbmc-cpp/Destructor_with_PtrMember/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Destructor_with_PtrMember/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Exception1/main.cpp b/regression/cbmc-cpp/Exception1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Exception1/main.cpp rename to regression/cbmc-cpp/Exception1/main.cpp diff --git a/regression/cpp-from-CVS/Friend6/test.desc b/regression/cbmc-cpp/Exception1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Friend6/test.desc rename to regression/cbmc-cpp/Exception1/test.desc diff --git a/regression/cpp-from-CVS/Float1/main.cpp b/regression/cbmc-cpp/Float1/main.cpp similarity index 88% rename from regression/cpp-from-CVS/Float1/main.cpp rename to regression/cbmc-cpp/Float1/main.cpp index 1feb586ec55..6b56b93b365 100644 --- a/regression/cpp-from-CVS/Float1/main.cpp +++ b/regression/cbmc-cpp/Float1/main.cpp @@ -1,3 +1,4 @@ +#include int main(int argc, char* argv[]) { float x = 0.1; diff --git a/regression/cbmc-cpp/Float1/test.desc b/regression/cbmc-cpp/Float1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Float1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Friend1/main.cpp b/regression/cbmc-cpp/Friend1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Friend1/main.cpp rename to regression/cbmc-cpp/Friend1/main.cpp diff --git a/regression/cpp-from-CVS/Function_Arguments3/test.desc b/regression/cbmc-cpp/Friend1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Function_Arguments3/test.desc rename to regression/cbmc-cpp/Friend1/test.desc diff --git a/regression/cpp-from-CVS/Friend3/main.cpp b/regression/cbmc-cpp/Friend3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Friend3/main.cpp rename to regression/cbmc-cpp/Friend3/main.cpp diff --git a/regression/cpp-from-CVS/Function_Arguments4/test.desc b/regression/cbmc-cpp/Friend3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Function_Arguments4/test.desc rename to regression/cbmc-cpp/Friend3/test.desc diff --git a/regression/cpp-from-CVS/Friend4/main.cpp b/regression/cbmc-cpp/Friend4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Friend4/main.cpp rename to regression/cbmc-cpp/Friend4/main.cpp diff --git a/regression/cpp-from-CVS/Friend4/test.desc b/regression/cbmc-cpp/Friend4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Friend4/test.desc rename to regression/cbmc-cpp/Friend4/test.desc diff --git a/regression/cpp-from-CVS/Friend5/main.cpp b/regression/cbmc-cpp/Friend5/main.cpp similarity index 92% rename from regression/cpp-from-CVS/Friend5/main.cpp rename to regression/cbmc-cpp/Friend5/main.cpp index 4ab363bccbe..0260a430365 100644 --- a/regression/cpp-from-CVS/Friend5/main.cpp +++ b/regression/cbmc-cpp/Friend5/main.cpp @@ -1,3 +1,4 @@ +#include class A { int i; friend class B; diff --git a/regression/cbmc-cpp/Friend5/test.desc b/regression/cbmc-cpp/Friend5/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Friend5/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Friend6/main.cpp b/regression/cbmc-cpp/Friend6/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Friend6/main.cpp rename to regression/cbmc-cpp/Friend6/main.cpp diff --git a/regression/cpp-from-CVS/Implicit_Conversion2/test.desc b/regression/cbmc-cpp/Friend6/test.desc similarity index 100% rename from regression/cpp-from-CVS/Implicit_Conversion2/test.desc rename to regression/cbmc-cpp/Friend6/test.desc diff --git a/regression/cpp-from-CVS/Function_Arguments1/main.cpp b/regression/cbmc-cpp/Function_Arguments1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Function_Arguments1/main.cpp rename to regression/cbmc-cpp/Function_Arguments1/main.cpp diff --git a/regression/cpp-from-CVS/Class_Members1/test.desc b/regression/cbmc-cpp/Function_Arguments1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Class_Members1/test.desc rename to regression/cbmc-cpp/Function_Arguments1/test.desc diff --git a/regression/cpp-from-CVS/Function_Arguments2/main.cpp b/regression/cbmc-cpp/Function_Arguments2/main.cpp similarity index 93% rename from regression/cpp-from-CVS/Function_Arguments2/main.cpp rename to regression/cbmc-cpp/Function_Arguments2/main.cpp index 1887762b3e0..92f95d96dbb 100644 --- a/regression/cpp-from-CVS/Function_Arguments2/main.cpp +++ b/regression/cbmc-cpp/Function_Arguments2/main.cpp @@ -1,3 +1,4 @@ +#include // test default arguments int f(int a, int b=2, int c=3) diff --git a/regression/cbmc-cpp/Function_Arguments2/test.desc b/regression/cbmc-cpp/Function_Arguments2/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Function_Arguments2/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Function_Arguments3/main.cpp b/regression/cbmc-cpp/Function_Arguments3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Function_Arguments3/main.cpp rename to regression/cbmc-cpp/Function_Arguments3/main.cpp diff --git a/regression/cpp-from-CVS/Implicit_Conversion3/test.desc b/regression/cbmc-cpp/Function_Arguments3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Implicit_Conversion3/test.desc rename to regression/cbmc-cpp/Function_Arguments3/test.desc diff --git a/regression/cpp-from-CVS/Function_Arguments4/main.cpp b/regression/cbmc-cpp/Function_Arguments4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Function_Arguments4/main.cpp rename to regression/cbmc-cpp/Function_Arguments4/main.cpp diff --git a/regression/cpp-from-CVS/Implicit_Conversion8/test.desc b/regression/cbmc-cpp/Function_Arguments4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Implicit_Conversion8/test.desc rename to regression/cbmc-cpp/Function_Arguments4/test.desc diff --git a/regression/cpp-from-CVS/Function_Arguments5/main.cpp b/regression/cbmc-cpp/Function_Arguments5/main.cpp similarity index 89% rename from regression/cpp-from-CVS/Function_Arguments5/main.cpp rename to regression/cbmc-cpp/Function_Arguments5/main.cpp index c417646b161..ca49a3ddb7a 100644 --- a/regression/cpp-from-CVS/Function_Arguments5/main.cpp +++ b/regression/cbmc-cpp/Function_Arguments5/main.cpp @@ -1,3 +1,4 @@ +#include bool func(const int& i) {return false;} bool func(const int* i) {return true;} diff --git a/regression/cbmc-cpp/Function_Arguments5/test.desc b/regression/cbmc-cpp/Function_Arguments5/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Function_Arguments5/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Function_Pointer1/main.cpp b/regression/cbmc-cpp/Function_Pointer1/main.cpp similarity index 81% rename from regression/cpp-from-CVS/Function_Pointer1/main.cpp rename to regression/cbmc-cpp/Function_Pointer1/main.cpp index 723671c5780..85ee5ef4609 100644 --- a/regression/cpp-from-CVS/Function_Pointer1/main.cpp +++ b/regression/cbmc-cpp/Function_Pointer1/main.cpp @@ -1,3 +1,4 @@ +#include int f(int x) { assert(x==1); diff --git a/regression/cbmc-cpp/Function_Pointer1/test.desc b/regression/cbmc-cpp/Function_Pointer1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Function_Pointer1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Implicit_Conversion1/main.cpp b/regression/cbmc-cpp/Implicit_Conversion1/main.cpp similarity index 88% rename from regression/cpp-from-CVS/Implicit_Conversion1/main.cpp rename to regression/cbmc-cpp/Implicit_Conversion1/main.cpp index 98b0c1b2822..2ab10d04690 100644 --- a/regression/cpp-from-CVS/Implicit_Conversion1/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion1/main.cpp @@ -1,3 +1,4 @@ +#include struct A { int i; diff --git a/regression/cbmc-cpp/Implicit_Conversion1/test.desc b/regression/cbmc-cpp/Implicit_Conversion1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Implicit_Conversion1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Implicit_Conversion2/main.cpp b/regression/cbmc-cpp/Implicit_Conversion2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Implicit_Conversion2/main.cpp rename to regression/cbmc-cpp/Implicit_Conversion2/main.cpp diff --git a/regression/cpp-from-CVS/Inheritance2/test.desc b/regression/cbmc-cpp/Implicit_Conversion2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Inheritance2/test.desc rename to regression/cbmc-cpp/Implicit_Conversion2/test.desc diff --git a/regression/cpp-from-CVS/Implicit_Conversion3/main.cpp b/regression/cbmc-cpp/Implicit_Conversion3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Implicit_Conversion3/main.cpp rename to regression/cbmc-cpp/Implicit_Conversion3/main.cpp diff --git a/regression/cpp-from-CVS/Lvalue1/test.desc b/regression/cbmc-cpp/Implicit_Conversion3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Lvalue1/test.desc rename to regression/cbmc-cpp/Implicit_Conversion3/test.desc diff --git a/regression/cpp-from-CVS/Implicit_Conversion4/main.cpp b/regression/cbmc-cpp/Implicit_Conversion4/main.cpp similarity index 98% rename from regression/cpp-from-CVS/Implicit_Conversion4/main.cpp rename to regression/cbmc-cpp/Implicit_Conversion4/main.cpp index 7609dfdce9a..51d401fdc9e 100644 --- a/regression/cpp-from-CVS/Implicit_Conversion4/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion4/main.cpp @@ -1,3 +1,4 @@ +#include struct B { int j; diff --git a/regression/cbmc-cpp/Implicit_Conversion4/test.desc b/regression/cbmc-cpp/Implicit_Conversion4/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Implicit_Conversion4/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Implicit_Conversion5/main.cpp b/regression/cbmc-cpp/Implicit_Conversion5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Implicit_Conversion5/main.cpp rename to regression/cbmc-cpp/Implicit_Conversion5/main.cpp diff --git a/regression/cpp-from-CVS/Implicit_Conversion5/test.desc b/regression/cbmc-cpp/Implicit_Conversion5/test.desc similarity index 100% rename from regression/cpp-from-CVS/Implicit_Conversion5/test.desc rename to regression/cbmc-cpp/Implicit_Conversion5/test.desc diff --git a/regression/cpp-from-CVS/Implicit_Conversion6/main.cpp b/regression/cbmc-cpp/Implicit_Conversion6/main.cpp similarity index 84% rename from regression/cpp-from-CVS/Implicit_Conversion6/main.cpp rename to regression/cbmc-cpp/Implicit_Conversion6/main.cpp index dd3549747ac..4423a5db053 100644 --- a/regression/cpp-from-CVS/Implicit_Conversion6/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion6/main.cpp @@ -1,3 +1,4 @@ +#include bool f(const char *) {return true;} bool f(int) {return false;} diff --git a/regression/cbmc-cpp/Implicit_Conversion6/test.desc b/regression/cbmc-cpp/Implicit_Conversion6/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Implicit_Conversion6/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Implicit_Conversion7/main.cpp b/regression/cbmc-cpp/Implicit_Conversion7/main.cpp similarity index 66% rename from regression/cpp-from-CVS/Implicit_Conversion7/main.cpp rename to regression/cbmc-cpp/Implicit_Conversion7/main.cpp index 64091308c0e..f251d0eb52a 100644 --- a/regression/cpp-from-CVS/Implicit_Conversion7/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion7/main.cpp @@ -1,3 +1,4 @@ +#include int main() { int a; diff --git a/regression/cbmc-cpp/Implicit_Conversion7/test.desc b/regression/cbmc-cpp/Implicit_Conversion7/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Implicit_Conversion7/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Implicit_Conversion8/main.cpp b/regression/cbmc-cpp/Implicit_Conversion8/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Implicit_Conversion8/main.cpp rename to regression/cbmc-cpp/Implicit_Conversion8/main.cpp diff --git a/regression/cpp-from-CVS/Multiple_Inheritance1/test.desc b/regression/cbmc-cpp/Implicit_Conversion8/test.desc similarity index 100% rename from regression/cpp-from-CVS/Multiple_Inheritance1/test.desc rename to regression/cbmc-cpp/Implicit_Conversion8/test.desc diff --git a/regression/cpp-from-CVS/Implicit_Conversion9/main.cpp b/regression/cbmc-cpp/Implicit_Conversion9/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Implicit_Conversion9/main.cpp rename to regression/cbmc-cpp/Implicit_Conversion9/main.cpp diff --git a/regression/cpp-from-CVS/Comma_Operator1/test.desc b/regression/cbmc-cpp/Implicit_Conversion9/test.desc similarity index 100% rename from regression/cpp-from-CVS/Comma_Operator1/test.desc rename to regression/cbmc-cpp/Implicit_Conversion9/test.desc diff --git a/regression/cpp-from-CVS/Inheritance1/main.cpp b/regression/cbmc-cpp/Inheritance1/main.cpp similarity index 89% rename from regression/cpp-from-CVS/Inheritance1/main.cpp rename to regression/cbmc-cpp/Inheritance1/main.cpp index f7c4cccd9c5..987563853ae 100644 --- a/regression/cpp-from-CVS/Inheritance1/main.cpp +++ b/regression/cbmc-cpp/Inheritance1/main.cpp @@ -1,3 +1,4 @@ +#include class b { public: diff --git a/regression/cbmc-cpp/Inheritance1/test.desc b/regression/cbmc-cpp/Inheritance1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Inheritance1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Inheritance2/main.cpp b/regression/cbmc-cpp/Inheritance2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Inheritance2/main.cpp rename to regression/cbmc-cpp/Inheritance2/main.cpp diff --git a/regression/cpp-from-CVS/Multiple_Inheritance2/test.desc b/regression/cbmc-cpp/Inheritance2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Multiple_Inheritance2/test.desc rename to regression/cbmc-cpp/Inheritance2/test.desc diff --git a/regression/cpp-from-CVS/Inheritance3/main.cpp b/regression/cbmc-cpp/Inheritance3/main.cpp similarity index 90% rename from regression/cpp-from-CVS/Inheritance3/main.cpp rename to regression/cbmc-cpp/Inheritance3/main.cpp index ef2b173312a..9e2cc9eb45c 100644 --- a/regression/cpp-from-CVS/Inheritance3/main.cpp +++ b/regression/cbmc-cpp/Inheritance3/main.cpp @@ -1,3 +1,4 @@ +#include struct A { typedef int INT; }; diff --git a/regression/cbmc-cpp/Inheritance3/test.desc b/regression/cbmc-cpp/Inheritance3/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Inheritance3/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Inheritance4/main.cpp b/regression/cbmc-cpp/Inheritance4/main.cpp similarity index 87% rename from regression/cpp-from-CVS/Inheritance4/main.cpp rename to regression/cbmc-cpp/Inheritance4/main.cpp index 58a95de0d34..c2431441f95 100644 --- a/regression/cpp-from-CVS/Inheritance4/main.cpp +++ b/regression/cbmc-cpp/Inheritance4/main.cpp @@ -1,3 +1,4 @@ +#include struct A{ int x; A(){} diff --git a/regression/cbmc-cpp/Inheritance4/test.desc b/regression/cbmc-cpp/Inheritance4/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Inheritance4/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Initializer1/main.cpp b/regression/cbmc-cpp/Initializer1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Initializer1/main.cpp rename to regression/cbmc-cpp/Initializer1/main.cpp diff --git a/regression/cbmc-cpp/Initializer1/test.desc b/regression/cbmc-cpp/Initializer1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Initializer1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Label0/main.cpp b/regression/cbmc-cpp/Label0/main.cpp similarity index 75% rename from regression/cpp-from-CVS/Label0/main.cpp rename to regression/cbmc-cpp/Label0/main.cpp index 00025a6820b..fcb8724670b 100644 --- a/regression/cpp-from-CVS/Label0/main.cpp +++ b/regression/cbmc-cpp/Label0/main.cpp @@ -1,3 +1,4 @@ +#include int main() { dummy_label: diff --git a/regression/cbmc-cpp/Label0/test.desc b/regression/cbmc-cpp/Label0/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Label0/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Linking1/main.cpp b/regression/cbmc-cpp/Linking1/main.cpp similarity index 84% rename from regression/cpp-from-CVS/Linking1/main.cpp rename to regression/cbmc-cpp/Linking1/main.cpp index 6cd912dc4ab..551ae3cbc3b 100644 --- a/regression/cpp-from-CVS/Linking1/main.cpp +++ b/regression/cbmc-cpp/Linking1/main.cpp @@ -1,3 +1,4 @@ +#include #include "module.h" extern int i; diff --git a/regression/cpp-from-CVS/Linking1/module.cpp b/regression/cbmc-cpp/Linking1/module.cpp similarity index 100% rename from regression/cpp-from-CVS/Linking1/module.cpp rename to regression/cbmc-cpp/Linking1/module.cpp diff --git a/regression/cpp-from-CVS/Linking1/module.h b/regression/cbmc-cpp/Linking1/module.h similarity index 100% rename from regression/cpp-from-CVS/Linking1/module.h rename to regression/cbmc-cpp/Linking1/module.h diff --git a/regression/cpp-from-CVS/Linking1/test.desc b/regression/cbmc-cpp/Linking1/test.desc similarity index 73% rename from regression/cpp-from-CVS/Linking1/test.desc rename to regression/cbmc-cpp/Linking1/test.desc index 2449051ba1d..49ced91341b 100644 --- a/regression/cpp-from-CVS/Linking1/test.desc +++ b/regression/cbmc-cpp/Linking1/test.desc @@ -1,4 +1,4 @@ -CORE +CORE winbug macos-assert-broken main.cpp module.cpp ^EXIT=0$ diff --git a/regression/cpp-from-CVS/Linking2/test.desc b/regression/cbmc-cpp/Linking2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Linking2/test.desc rename to regression/cbmc-cpp/Linking2/test.desc diff --git a/regression/cpp-from-CVS/Linking2/test_link1.cpp b/regression/cbmc-cpp/Linking2/test_link1.cpp similarity index 100% rename from regression/cpp-from-CVS/Linking2/test_link1.cpp rename to regression/cbmc-cpp/Linking2/test_link1.cpp diff --git a/regression/cpp-from-CVS/Linking2/test_link2.c b/regression/cbmc-cpp/Linking2/test_link2.c similarity index 100% rename from regression/cpp-from-CVS/Linking2/test_link2.c rename to regression/cbmc-cpp/Linking2/test_link2.c diff --git a/regression/cpp-from-CVS/Lvalue1/main.cpp b/regression/cbmc-cpp/Lvalue1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Lvalue1/main.cpp rename to regression/cbmc-cpp/Lvalue1/main.cpp diff --git a/regression/cpp-from-CVS/Multiple_Inheritance4/test.desc b/regression/cbmc-cpp/Lvalue1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Multiple_Inheritance4/test.desc rename to regression/cbmc-cpp/Lvalue1/test.desc diff --git a/regression/cpp-from-CVS/Member_Access_in_Class/main.cpp b/regression/cbmc-cpp/Member_Access_in_Class/main.cpp similarity index 88% rename from regression/cpp-from-CVS/Member_Access_in_Class/main.cpp rename to regression/cbmc-cpp/Member_Access_in_Class/main.cpp index 34899998764..678d70be4b4 100644 --- a/regression/cpp-from-CVS/Member_Access_in_Class/main.cpp +++ b/regression/cbmc-cpp/Member_Access_in_Class/main.cpp @@ -1,3 +1,4 @@ +#include class t { public: diff --git a/regression/cbmc-cpp/Member_Access_in_Class/test.desc b/regression/cbmc-cpp/Member_Access_in_Class/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Member_Access_in_Class/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Multiple_Inheritance1/main.cpp b/regression/cbmc-cpp/Multiple_Inheritance1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Multiple_Inheritance1/main.cpp rename to regression/cbmc-cpp/Multiple_Inheritance1/main.cpp diff --git a/regression/cpp-from-CVS/Overloading_Functions2/test.desc b/regression/cbmc-cpp/Multiple_Inheritance1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Overloading_Functions2/test.desc rename to regression/cbmc-cpp/Multiple_Inheritance1/test.desc diff --git a/regression/cpp-from-CVS/Multiple_Inheritance2/main.cpp b/regression/cbmc-cpp/Multiple_Inheritance2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Multiple_Inheritance2/main.cpp rename to regression/cbmc-cpp/Multiple_Inheritance2/main.cpp diff --git a/regression/cpp-from-CVS/Overloading_Operators1/test.desc b/regression/cbmc-cpp/Multiple_Inheritance2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators1/test.desc rename to regression/cbmc-cpp/Multiple_Inheritance2/test.desc diff --git a/regression/cpp-from-CVS/Multiple_Inheritance3/main.cpp b/regression/cbmc-cpp/Multiple_Inheritance3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Multiple_Inheritance3/main.cpp rename to regression/cbmc-cpp/Multiple_Inheritance3/main.cpp diff --git a/regression/cpp-from-CVS/Multiple_Inheritance3/test.desc b/regression/cbmc-cpp/Multiple_Inheritance3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Multiple_Inheritance3/test.desc rename to regression/cbmc-cpp/Multiple_Inheritance3/test.desc diff --git a/regression/cpp-from-CVS/Multiple_Inheritance4/main.cpp b/regression/cbmc-cpp/Multiple_Inheritance4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Multiple_Inheritance4/main.cpp rename to regression/cbmc-cpp/Multiple_Inheritance4/main.cpp diff --git a/regression/cpp-from-CVS/Overloading_Operators10/test.desc b/regression/cbmc-cpp/Multiple_Inheritance4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators10/test.desc rename to regression/cbmc-cpp/Multiple_Inheritance4/test.desc diff --git a/regression/cpp-from-CVS/Mutable1/main.cpp b/regression/cbmc-cpp/Mutable1/main.cpp similarity index 87% rename from regression/cpp-from-CVS/Mutable1/main.cpp rename to regression/cbmc-cpp/Mutable1/main.cpp index 62120d09a7d..45f5b9f39cc 100644 --- a/regression/cpp-from-CVS/Mutable1/main.cpp +++ b/regression/cbmc-cpp/Mutable1/main.cpp @@ -1,3 +1,4 @@ +#include struct A { mutable int i; diff --git a/regression/cbmc-cpp/Mutable1/test.desc b/regression/cbmc-cpp/Mutable1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Mutable1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Functions1/main.cpp b/regression/cbmc-cpp/Overloading_Functions1/main.cpp similarity index 95% rename from regression/cpp-from-CVS/Overloading_Functions1/main.cpp rename to regression/cbmc-cpp/Overloading_Functions1/main.cpp index c7177926d30..2e900fa1101 100644 --- a/regression/cpp-from-CVS/Overloading_Functions1/main.cpp +++ b/regression/cbmc-cpp/Overloading_Functions1/main.cpp @@ -1,3 +1,4 @@ +#include // get closest match struct T diff --git a/regression/cbmc-cpp/Overloading_Functions1/test.desc b/regression/cbmc-cpp/Overloading_Functions1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Overloading_Functions1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Functions2/main.cpp b/regression/cbmc-cpp/Overloading_Functions2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Functions2/main.cpp rename to regression/cbmc-cpp/Overloading_Functions2/main.cpp diff --git a/regression/cpp-from-CVS/Overloading_Operators11/test.desc b/regression/cbmc-cpp/Overloading_Functions2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators11/test.desc rename to regression/cbmc-cpp/Overloading_Functions2/test.desc diff --git a/regression/cpp-from-CVS/Overloading_Functions3/main.cpp b/regression/cbmc-cpp/Overloading_Functions3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Functions3/main.cpp rename to regression/cbmc-cpp/Overloading_Functions3/main.cpp diff --git a/regression/cbmc-cpp/Overloading_Functions3/test.desc b/regression/cbmc-cpp/Overloading_Functions3/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Overloading_Functions3/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Functions4/main.cpp b/regression/cbmc-cpp/Overloading_Functions4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Functions4/main.cpp rename to regression/cbmc-cpp/Overloading_Functions4/main.cpp diff --git a/regression/cpp-from-CVS/ConditionalExpression1/test.desc b/regression/cbmc-cpp/Overloading_Functions4/test.desc similarity index 100% rename from regression/cpp-from-CVS/ConditionalExpression1/test.desc rename to regression/cbmc-cpp/Overloading_Functions4/test.desc diff --git a/regression/cpp-from-CVS/Overloading_Increment1/main.cpp b/regression/cbmc-cpp/Overloading_Increment1/main.cpp similarity index 96% rename from regression/cpp-from-CVS/Overloading_Increment1/main.cpp rename to regression/cbmc-cpp/Overloading_Increment1/main.cpp index 6fbb8c5269b..71a9ea3e80d 100644 --- a/regression/cpp-from-CVS/Overloading_Increment1/main.cpp +++ b/regression/cbmc-cpp/Overloading_Increment1/main.cpp @@ -1,3 +1,4 @@ +#include struct A { int a; diff --git a/regression/cbmc-cpp/Overloading_Increment1/test.desc b/regression/cbmc-cpp/Overloading_Increment1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Overloading_Increment1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Members1/main.cpp b/regression/cbmc-cpp/Overloading_Members1/main.cpp similarity index 90% rename from regression/cpp-from-CVS/Overloading_Members1/main.cpp rename to regression/cbmc-cpp/Overloading_Members1/main.cpp index cd1af5f2668..74d1535325f 100644 --- a/regression/cpp-from-CVS/Overloading_Members1/main.cpp +++ b/regression/cbmc-cpp/Overloading_Members1/main.cpp @@ -1,3 +1,4 @@ +#include class T { public: diff --git a/regression/cbmc-cpp/Overloading_Members1/test.desc b/regression/cbmc-cpp/Overloading_Members1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Overloading_Members1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Operators1/main.cpp b/regression/cbmc-cpp/Overloading_Operators1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators1/main.cpp rename to regression/cbmc-cpp/Overloading_Operators1/main.cpp diff --git a/regression/cpp-from-CVS/Overloading_Operators14/test.desc b/regression/cbmc-cpp/Overloading_Operators1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators14/test.desc rename to regression/cbmc-cpp/Overloading_Operators1/test.desc diff --git a/regression/cpp-from-CVS/Overloading_Operators10/main.cpp b/regression/cbmc-cpp/Overloading_Operators10/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators10/main.cpp rename to regression/cbmc-cpp/Overloading_Operators10/main.cpp diff --git a/regression/cpp-from-CVS/Overloading_Operators4/test.desc b/regression/cbmc-cpp/Overloading_Operators10/test.desc similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators4/test.desc rename to regression/cbmc-cpp/Overloading_Operators10/test.desc diff --git a/regression/cpp-from-CVS/Overloading_Operators11/main.cpp b/regression/cbmc-cpp/Overloading_Operators11/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators11/main.cpp rename to regression/cbmc-cpp/Overloading_Operators11/main.cpp diff --git a/regression/cpp-from-CVS/Overloading_Operators5/test.desc b/regression/cbmc-cpp/Overloading_Operators11/test.desc similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators5/test.desc rename to regression/cbmc-cpp/Overloading_Operators11/test.desc diff --git a/regression/cpp-from-CVS/Overloading_Operators12/main.cpp b/regression/cbmc-cpp/Overloading_Operators12/main.cpp similarity index 89% rename from regression/cpp-from-CVS/Overloading_Operators12/main.cpp rename to regression/cbmc-cpp/Overloading_Operators12/main.cpp index 19c84c54078..8724ff2c0c1 100644 --- a/regression/cpp-from-CVS/Overloading_Operators12/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators12/main.cpp @@ -1,3 +1,4 @@ +#include struct A { bool operator << (const A&) const {return true;} bool func(const A& a)const{ return operator <<(a);} diff --git a/regression/cbmc-cpp/Overloading_Operators12/test.desc b/regression/cbmc-cpp/Overloading_Operators12/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Overloading_Operators12/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Operators13/main.cpp b/regression/cbmc-cpp/Overloading_Operators13/main.cpp similarity index 91% rename from regression/cpp-from-CVS/Overloading_Operators13/main.cpp rename to regression/cbmc-cpp/Overloading_Operators13/main.cpp index 7b18f5d61a0..8a7ab7b5980 100644 --- a/regression/cpp-from-CVS/Overloading_Operators13/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators13/main.cpp @@ -1,3 +1,4 @@ +#include struct A { bool operator[](int index) {return true;} }; diff --git a/regression/cbmc-cpp/Overloading_Operators13/test.desc b/regression/cbmc-cpp/Overloading_Operators13/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Overloading_Operators13/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Operators14/main.cpp b/regression/cbmc-cpp/Overloading_Operators14/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators14/main.cpp rename to regression/cbmc-cpp/Overloading_Operators14/main.cpp diff --git a/regression/cpp-from-CVS/Overloading_Operators6/test.desc b/regression/cbmc-cpp/Overloading_Operators14/test.desc similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators6/test.desc rename to regression/cbmc-cpp/Overloading_Operators14/test.desc diff --git a/regression/cpp-from-CVS/Overloading_Operators16/main.cpp b/regression/cbmc-cpp/Overloading_Operators16/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators16/main.cpp rename to regression/cbmc-cpp/Overloading_Operators16/main.cpp diff --git a/regression/cpp-from-CVS/Overloading_Operators16/test.desc b/regression/cbmc-cpp/Overloading_Operators16/test.desc similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators16/test.desc rename to regression/cbmc-cpp/Overloading_Operators16/test.desc diff --git a/regression/cpp-from-CVS/Overloading_Operators2/main.cpp b/regression/cbmc-cpp/Overloading_Operators2/main.cpp similarity index 92% rename from regression/cpp-from-CVS/Overloading_Operators2/main.cpp rename to regression/cbmc-cpp/Overloading_Operators2/main.cpp index 9e58e301bd0..cf002f4cfe9 100644 --- a/regression/cpp-from-CVS/Overloading_Operators2/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators2/main.cpp @@ -1,3 +1,4 @@ +#include class C { public: diff --git a/regression/cbmc-cpp/Overloading_Operators2/test.desc b/regression/cbmc-cpp/Overloading_Operators2/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Overloading_Operators2/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Operators3/main.cpp b/regression/cbmc-cpp/Overloading_Operators3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators3/main.cpp rename to regression/cbmc-cpp/Overloading_Operators3/main.cpp diff --git a/regression/cpp-from-CVS/Overloading_Operators3/test.desc b/regression/cbmc-cpp/Overloading_Operators3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators3/test.desc rename to regression/cbmc-cpp/Overloading_Operators3/test.desc diff --git a/regression/cpp-from-CVS/Overloading_Operators4/main.cpp b/regression/cbmc-cpp/Overloading_Operators4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators4/main.cpp rename to regression/cbmc-cpp/Overloading_Operators4/main.cpp diff --git a/regression/cpp-from-CVS/Overloading_Operators9/test.desc b/regression/cbmc-cpp/Overloading_Operators4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators9/test.desc rename to regression/cbmc-cpp/Overloading_Operators4/test.desc diff --git a/regression/cpp-from-CVS/Overloading_Operators5/main.cpp b/regression/cbmc-cpp/Overloading_Operators5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators5/main.cpp rename to regression/cbmc-cpp/Overloading_Operators5/main.cpp diff --git a/regression/cpp-from-CVS/Pointer_To_Member6/test.desc b/regression/cbmc-cpp/Overloading_Operators5/test.desc similarity index 100% rename from regression/cpp-from-CVS/Pointer_To_Member6/test.desc rename to regression/cbmc-cpp/Overloading_Operators5/test.desc diff --git a/regression/cpp-from-CVS/Overloading_Operators6/main.cpp b/regression/cbmc-cpp/Overloading_Operators6/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators6/main.cpp rename to regression/cbmc-cpp/Overloading_Operators6/main.cpp diff --git a/regression/cpp-from-CVS/Reference1/test.desc b/regression/cbmc-cpp/Overloading_Operators6/test.desc similarity index 100% rename from regression/cpp-from-CVS/Reference1/test.desc rename to regression/cbmc-cpp/Overloading_Operators6/test.desc diff --git a/regression/cpp-from-CVS/Overloading_Operators7/main.cpp b/regression/cbmc-cpp/Overloading_Operators7/main.cpp similarity index 92% rename from regression/cpp-from-CVS/Overloading_Operators7/main.cpp rename to regression/cbmc-cpp/Overloading_Operators7/main.cpp index 0b09d0f9624..33eda131775 100644 --- a/regression/cpp-from-CVS/Overloading_Operators7/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators7/main.cpp @@ -1,3 +1,4 @@ +#include int g; struct A diff --git a/regression/cbmc-cpp/Overloading_Operators7/test.desc b/regression/cbmc-cpp/Overloading_Operators7/test.desc new file mode 100644 index 00000000000..7791be248c7 --- /dev/null +++ b/regression/cbmc-cpp/Overloading_Operators7/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Operators8/main.cpp b/regression/cbmc-cpp/Overloading_Operators8/main.cpp similarity index 91% rename from regression/cpp-from-CVS/Overloading_Operators8/main.cpp rename to regression/cbmc-cpp/Overloading_Operators8/main.cpp index fe018e737b6..45f6b8d1252 100644 --- a/regression/cpp-from-CVS/Overloading_Operators8/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators8/main.cpp @@ -1,3 +1,4 @@ +#include struct A { int i; }; diff --git a/regression/cbmc-cpp/Overloading_Operators8/test.desc b/regression/cbmc-cpp/Overloading_Operators8/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Overloading_Operators8/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Operators9/main.cpp b/regression/cbmc-cpp/Overloading_Operators9/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Overloading_Operators9/main.cpp rename to regression/cbmc-cpp/Overloading_Operators9/main.cpp diff --git a/regression/cpp-from-CVS/Resolver13/test.desc b/regression/cbmc-cpp/Overloading_Operators9/test.desc similarity index 100% rename from regression/cpp-from-CVS/Resolver13/test.desc rename to regression/cbmc-cpp/Overloading_Operators9/test.desc diff --git a/regression/cpp-from-CVS/Pointer_Conversion2/main.cpp b/regression/cbmc-cpp/Pointer_Conversion2/main.cpp similarity index 82% rename from regression/cpp-from-CVS/Pointer_Conversion2/main.cpp rename to regression/cbmc-cpp/Pointer_Conversion2/main.cpp index 467411f605a..6c3fdfebf23 100644 --- a/regression/cpp-from-CVS/Pointer_Conversion2/main.cpp +++ b/regression/cbmc-cpp/Pointer_Conversion2/main.cpp @@ -1,3 +1,4 @@ +#include char a[100]; void f(const signed char x[]) diff --git a/regression/cbmc-cpp/Pointer_Conversion2/test.desc b/regression/cbmc-cpp/Pointer_Conversion2/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Pointer_Conversion2/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Pointer_Conversion3/main.cpp b/regression/cbmc-cpp/Pointer_Conversion3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Pointer_Conversion3/main.cpp rename to regression/cbmc-cpp/Pointer_Conversion3/main.cpp diff --git a/regression/cpp-from-CVS/Pointer_Conversion3/test.desc b/regression/cbmc-cpp/Pointer_Conversion3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Pointer_Conversion3/test.desc rename to regression/cbmc-cpp/Pointer_Conversion3/test.desc diff --git a/regression/cpp-from-CVS/Pointer_To_Member1/main.cpp b/regression/cbmc-cpp/Pointer_To_Member1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Pointer_To_Member1/main.cpp rename to regression/cbmc-cpp/Pointer_To_Member1/main.cpp diff --git a/regression/cpp-from-CVS/Resolver5/test.desc b/regression/cbmc-cpp/Pointer_To_Member1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Resolver5/test.desc rename to regression/cbmc-cpp/Pointer_To_Member1/test.desc diff --git a/regression/cpp-from-CVS/Pointer_To_Member2/main.cpp b/regression/cbmc-cpp/Pointer_To_Member2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Pointer_To_Member2/main.cpp rename to regression/cbmc-cpp/Pointer_To_Member2/main.cpp diff --git a/regression/cpp-from-CVS/Pointer_To_Member2/test.desc b/regression/cbmc-cpp/Pointer_To_Member2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Pointer_To_Member2/test.desc rename to regression/cbmc-cpp/Pointer_To_Member2/test.desc diff --git a/regression/cpp-from-CVS/Pointer_To_Member3/main.cpp b/regression/cbmc-cpp/Pointer_To_Member3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Pointer_To_Member3/main.cpp rename to regression/cbmc-cpp/Pointer_To_Member3/main.cpp diff --git a/regression/cpp-from-CVS/Pointer_To_Member3/test.desc b/regression/cbmc-cpp/Pointer_To_Member3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Pointer_To_Member3/test.desc rename to regression/cbmc-cpp/Pointer_To_Member3/test.desc diff --git a/regression/cpp-from-CVS/Pointer_To_Member4/main.cpp b/regression/cbmc-cpp/Pointer_To_Member4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Pointer_To_Member4/main.cpp rename to regression/cbmc-cpp/Pointer_To_Member4/main.cpp diff --git a/regression/cpp-from-CVS/Pointer_To_Member4/test.desc b/regression/cbmc-cpp/Pointer_To_Member4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Pointer_To_Member4/test.desc rename to regression/cbmc-cpp/Pointer_To_Member4/test.desc diff --git a/regression/cpp-from-CVS/Pointer_To_Member5/main.cpp b/regression/cbmc-cpp/Pointer_To_Member5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Pointer_To_Member5/main.cpp rename to regression/cbmc-cpp/Pointer_To_Member5/main.cpp diff --git a/regression/cpp-from-CVS/STL1/test.desc b/regression/cbmc-cpp/Pointer_To_Member5/test.desc similarity index 100% rename from regression/cpp-from-CVS/STL1/test.desc rename to regression/cbmc-cpp/Pointer_To_Member5/test.desc diff --git a/regression/cpp-from-CVS/Pointer_To_Member6/main.cpp b/regression/cbmc-cpp/Pointer_To_Member6/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Pointer_To_Member6/main.cpp rename to regression/cbmc-cpp/Pointer_To_Member6/main.cpp diff --git a/regression/cpp-from-CVS/Templates16/test.desc b/regression/cbmc-cpp/Pointer_To_Member6/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates16/test.desc rename to regression/cbmc-cpp/Pointer_To_Member6/test.desc diff --git a/regression/cpp-from-CVS/Protection2/main.cpp b/regression/cbmc-cpp/Protection2/main.cpp similarity index 90% rename from regression/cpp-from-CVS/Protection2/main.cpp rename to regression/cbmc-cpp/Protection2/main.cpp index 02885d9e419..b8009d63d3b 100644 --- a/regression/cpp-from-CVS/Protection2/main.cpp +++ b/regression/cbmc-cpp/Protection2/main.cpp @@ -1,3 +1,4 @@ +#include struct A { protected: diff --git a/regression/cbmc-cpp/Protection2/test.desc b/regression/cbmc-cpp/Protection2/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Protection2/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Protection3/main.cpp b/regression/cbmc-cpp/Protection3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Protection3/main.cpp rename to regression/cbmc-cpp/Protection3/main.cpp diff --git a/regression/cpp-from-CVS/Protection1/test.desc b/regression/cbmc-cpp/Protection3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Protection1/test.desc rename to regression/cbmc-cpp/Protection3/test.desc diff --git a/regression/cpp-from-CVS/Protection4/main.cpp b/regression/cbmc-cpp/Protection4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Protection4/main.cpp rename to regression/cbmc-cpp/Protection4/main.cpp diff --git a/regression/cpp-from-CVS/Protection3/test.desc b/regression/cbmc-cpp/Protection4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Protection3/test.desc rename to regression/cbmc-cpp/Protection4/test.desc diff --git a/regression/cpp-from-CVS/Protection5/main.cpp b/regression/cbmc-cpp/Protection5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Protection5/main.cpp rename to regression/cbmc-cpp/Protection5/main.cpp diff --git a/regression/cpp-from-CVS/Protection5/test.desc b/regression/cbmc-cpp/Protection5/test.desc similarity index 100% rename from regression/cpp-from-CVS/Protection5/test.desc rename to regression/cbmc-cpp/Protection5/test.desc diff --git a/regression/cpp-from-CVS/Protection6/main.cpp b/regression/cbmc-cpp/Protection6/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Protection6/main.cpp rename to regression/cbmc-cpp/Protection6/main.cpp diff --git a/regression/cpp-from-CVS/Protection6/test.desc b/regression/cbmc-cpp/Protection6/test.desc similarity index 100% rename from regression/cpp-from-CVS/Protection6/test.desc rename to regression/cbmc-cpp/Protection6/test.desc diff --git a/regression/cpp-from-CVS/Protection7/main.cpp b/regression/cbmc-cpp/Protection7/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Protection7/main.cpp rename to regression/cbmc-cpp/Protection7/main.cpp diff --git a/regression/cpp-from-CVS/Templates20/test.desc b/regression/cbmc-cpp/Protection7/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates20/test.desc rename to regression/cbmc-cpp/Protection7/test.desc diff --git a/regression/cpp-from-CVS/Protection8/main.cpp b/regression/cbmc-cpp/Protection8/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Protection8/main.cpp rename to regression/cbmc-cpp/Protection8/main.cpp diff --git a/regression/cpp-from-CVS/Protection8/test.desc b/regression/cbmc-cpp/Protection8/test.desc similarity index 100% rename from regression/cpp-from-CVS/Protection8/test.desc rename to regression/cbmc-cpp/Protection8/test.desc diff --git a/regression/cpp-from-CVS/Qualifier1/main.cpp b/regression/cbmc-cpp/Qualifier1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Qualifier1/main.cpp rename to regression/cbmc-cpp/Qualifier1/main.cpp diff --git a/regression/cpp-from-CVS/Protection4/test.desc b/regression/cbmc-cpp/Qualifier1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Protection4/test.desc rename to regression/cbmc-cpp/Qualifier1/test.desc diff --git a/regression/cpp-from-CVS/Qualifier2/main.cpp b/regression/cbmc-cpp/Qualifier2/main.cpp similarity index 92% rename from regression/cpp-from-CVS/Qualifier2/main.cpp rename to regression/cbmc-cpp/Qualifier2/main.cpp index d51626ee97c..c62e6cbf217 100644 --- a/regression/cpp-from-CVS/Qualifier2/main.cpp +++ b/regression/cbmc-cpp/Qualifier2/main.cpp @@ -1,3 +1,4 @@ +#include struct A { static int i; diff --git a/regression/cbmc-cpp/Qualifier2/test.desc b/regression/cbmc-cpp/Qualifier2/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Qualifier2/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Qualifier3/main.cpp b/regression/cbmc-cpp/Qualifier3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Qualifier3/main.cpp rename to regression/cbmc-cpp/Qualifier3/main.cpp diff --git a/regression/cpp-from-CVS/Qualifier1/test.desc b/regression/cbmc-cpp/Qualifier3/test.desc similarity index 100% rename from regression/cpp-from-CVS/Qualifier1/test.desc rename to regression/cbmc-cpp/Qualifier3/test.desc diff --git a/regression/cpp-from-CVS/Qualifier4/main.cpp b/regression/cbmc-cpp/Qualifier4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Qualifier4/main.cpp rename to regression/cbmc-cpp/Qualifier4/main.cpp diff --git a/regression/cpp-from-CVS/Qualifier4/test.desc b/regression/cbmc-cpp/Qualifier4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Qualifier4/test.desc rename to regression/cbmc-cpp/Qualifier4/test.desc diff --git a/regression/cpp-from-CVS/Reference1/main.cpp b/regression/cbmc-cpp/Reference1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Reference1/main.cpp rename to regression/cbmc-cpp/Reference1/main.cpp diff --git a/regression/cpp-from-CVS/Templates27/test.desc b/regression/cbmc-cpp/Reference1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates27/test.desc rename to regression/cbmc-cpp/Reference1/test.desc diff --git a/regression/cpp-from-CVS/Reference2/main.cpp b/regression/cbmc-cpp/Reference2/main.cpp similarity index 91% rename from regression/cpp-from-CVS/Reference2/main.cpp rename to regression/cbmc-cpp/Reference2/main.cpp index 69c74c1f18e..8092fedaff9 100644 --- a/regression/cpp-from-CVS/Reference2/main.cpp +++ b/regression/cbmc-cpp/Reference2/main.cpp @@ -1,3 +1,4 @@ +#include int g; class X diff --git a/regression/cbmc-cpp/Reference2/test.desc b/regression/cbmc-cpp/Reference2/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Reference2/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Reference3/main.cpp b/regression/cbmc-cpp/Reference3/main.cpp similarity index 90% rename from regression/cpp-from-CVS/Reference3/main.cpp rename to regression/cbmc-cpp/Reference3/main.cpp index 052233e98c7..6aefb89824c 100644 --- a/regression/cpp-from-CVS/Reference3/main.cpp +++ b/regression/cbmc-cpp/Reference3/main.cpp @@ -1,3 +1,4 @@ +#include class A { public: diff --git a/regression/cbmc-cpp/Reference3/test.desc b/regression/cbmc-cpp/Reference3/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Reference3/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Reference4/main.cpp b/regression/cbmc-cpp/Reference4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Reference4/main.cpp rename to regression/cbmc-cpp/Reference4/main.cpp diff --git a/regression/cpp-from-CVS/Qualifier3/test.desc b/regression/cbmc-cpp/Reference4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Qualifier3/test.desc rename to regression/cbmc-cpp/Reference4/test.desc diff --git a/regression/cpp-from-CVS/Reference5/main.cpp b/regression/cbmc-cpp/Reference5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Reference5/main.cpp rename to regression/cbmc-cpp/Reference5/main.cpp diff --git a/regression/cpp-from-CVS/Reference4/test.desc b/regression/cbmc-cpp/Reference5/test.desc similarity index 100% rename from regression/cpp-from-CVS/Reference4/test.desc rename to regression/cbmc-cpp/Reference5/test.desc diff --git a/regression/cpp-from-CVS/Reference6/main.cpp b/regression/cbmc-cpp/Reference6/main.cpp similarity index 87% rename from regression/cpp-from-CVS/Reference6/main.cpp rename to regression/cbmc-cpp/Reference6/main.cpp index cb407b9bb13..5e222e832d0 100644 --- a/regression/cpp-from-CVS/Reference6/main.cpp +++ b/regression/cbmc-cpp/Reference6/main.cpp @@ -1,3 +1,4 @@ +#include class X { public: diff --git a/regression/cbmc-cpp/Reference6/test.desc b/regression/cbmc-cpp/Reference6/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Reference6/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Reference7/main.cpp b/regression/cbmc-cpp/Reference7/main.cpp similarity index 80% rename from regression/cpp-from-CVS/Reference7/main.cpp rename to regression/cbmc-cpp/Reference7/main.cpp index 34cacff40fb..16ce32244a5 100644 --- a/regression/cpp-from-CVS/Reference7/main.cpp +++ b/regression/cbmc-cpp/Reference7/main.cpp @@ -1,3 +1,4 @@ +#include int main() { diff --git a/regression/cbmc-cpp/Reference7/test.desc b/regression/cbmc-cpp/Reference7/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Reference7/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Reference8/main.cpp b/regression/cbmc-cpp/Reference8/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Reference8/main.cpp rename to regression/cbmc-cpp/Reference8/main.cpp diff --git a/regression/cpp-from-CVS/Reference8/test.desc b/regression/cbmc-cpp/Reference8/test.desc similarity index 100% rename from regression/cpp-from-CVS/Reference8/test.desc rename to regression/cbmc-cpp/Reference8/test.desc diff --git a/regression/cpp-from-CVS/Resolver13/main.cpp b/regression/cbmc-cpp/Resolver13/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Resolver13/main.cpp rename to regression/cbmc-cpp/Resolver13/main.cpp diff --git a/regression/cpp-from-CVS/Templates29/test.desc b/regression/cbmc-cpp/Resolver13/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates29/test.desc rename to regression/cbmc-cpp/Resolver13/test.desc diff --git a/regression/cpp-from-CVS/Resolver5/main.cpp b/regression/cbmc-cpp/Resolver5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Resolver5/main.cpp rename to regression/cbmc-cpp/Resolver5/main.cpp diff --git a/regression/cpp-from-CVS/Templates31/test.desc b/regression/cbmc-cpp/Resolver5/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates31/test.desc rename to regression/cbmc-cpp/Resolver5/test.desc diff --git a/regression/cpp-from-CVS/Resolver6/main.cpp b/regression/cbmc-cpp/Resolver6/main.cpp similarity index 86% rename from regression/cpp-from-CVS/Resolver6/main.cpp rename to regression/cbmc-cpp/Resolver6/main.cpp index 61685b4db15..5279866e455 100644 --- a/regression/cpp-from-CVS/Resolver6/main.cpp +++ b/regression/cbmc-cpp/Resolver6/main.cpp @@ -1,3 +1,4 @@ +#include bool f(char c) { return false; diff --git a/regression/cbmc-cpp/Resolver6/test.desc b/regression/cbmc-cpp/Resolver6/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Resolver6/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Resolver7/main.cpp b/regression/cbmc-cpp/Resolver7/main.cpp similarity index 90% rename from regression/cpp-from-CVS/Resolver7/main.cpp rename to regression/cbmc-cpp/Resolver7/main.cpp index 2b3035def8c..3265f99bc6b 100644 --- a/regression/cpp-from-CVS/Resolver7/main.cpp +++ b/regression/cbmc-cpp/Resolver7/main.cpp @@ -1,3 +1,4 @@ +#include extern const char hello []; bool func(const char* str) {return true;} diff --git a/regression/cbmc-cpp/Resolver7/test.desc b/regression/cbmc-cpp/Resolver7/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Resolver7/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Resolver8/main.cpp b/regression/cbmc-cpp/Resolver8/main.cpp similarity index 87% rename from regression/cpp-from-CVS/Resolver8/main.cpp rename to regression/cbmc-cpp/Resolver8/main.cpp index f1d7300996e..ed94fd9f82d 100644 --- a/regression/cpp-from-CVS/Resolver8/main.cpp +++ b/regression/cbmc-cpp/Resolver8/main.cpp @@ -1,3 +1,4 @@ +#include bool func() {return true;} bool func(int i) diff --git a/regression/cbmc-cpp/Resolver8/test.desc b/regression/cbmc-cpp/Resolver8/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Resolver8/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Resolver9/main.cpp b/regression/cbmc-cpp/Resolver9/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Resolver9/main.cpp rename to regression/cbmc-cpp/Resolver9/main.cpp diff --git a/regression/cpp-from-CVS/ConditionalExpression2/test.desc b/regression/cbmc-cpp/Resolver9/test.desc similarity index 100% rename from regression/cpp-from-CVS/ConditionalExpression2/test.desc rename to regression/cbmc-cpp/Resolver9/test.desc diff --git a/regression/cpp-from-CVS/STL1/main.cpp b/regression/cbmc-cpp/STL1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/STL1/main.cpp rename to regression/cbmc-cpp/STL1/main.cpp diff --git a/regression/cpp-from-CVS/Templates32/test.desc b/regression/cbmc-cpp/STL1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates32/test.desc rename to regression/cbmc-cpp/STL1/test.desc diff --git a/regression/cpp-from-CVS/STL2/main.cpp b/regression/cbmc-cpp/STL2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/STL2/main.cpp rename to regression/cbmc-cpp/STL2/main.cpp diff --git a/regression/cpp-from-CVS/STL2/test.desc b/regression/cbmc-cpp/STL2/test.desc similarity index 100% rename from regression/cpp-from-CVS/STL2/test.desc rename to regression/cbmc-cpp/STL2/test.desc diff --git a/regression/cpp-from-CVS/Static_Member1/main.cpp b/regression/cbmc-cpp/Static_Member1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Static_Member1/main.cpp rename to regression/cbmc-cpp/Static_Member1/main.cpp diff --git a/regression/cpp-from-CVS/Templates34/test.desc b/regression/cbmc-cpp/Static_Member1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates34/test.desc rename to regression/cbmc-cpp/Static_Member1/test.desc diff --git a/regression/cpp-from-CVS/Static_Member_Function/main.cpp b/regression/cbmc-cpp/Static_Member_Function/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Static_Member_Function/main.cpp rename to regression/cbmc-cpp/Static_Member_Function/main.cpp diff --git a/regression/cpp-from-CVS/Constructor1/test.desc b/regression/cbmc-cpp/Static_Member_Function/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor1/test.desc rename to regression/cbmc-cpp/Static_Member_Function/test.desc diff --git a/regression/cpp-from-CVS/Static_Method1/main.cpp b/regression/cbmc-cpp/Static_Method1/main.cpp similarity index 88% rename from regression/cpp-from-CVS/Static_Method1/main.cpp rename to regression/cbmc-cpp/Static_Method1/main.cpp index 630ef1979ee..ede06ee3a3b 100644 --- a/regression/cpp-from-CVS/Static_Method1/main.cpp +++ b/regression/cbmc-cpp/Static_Method1/main.cpp @@ -1,3 +1,4 @@ +#include struct A { static int Value(int v) {return v;} diff --git a/regression/cbmc-cpp/Static_Method1/test.desc b/regression/cbmc-cpp/Static_Method1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Static_Method1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/String_Literal1/main.cpp b/regression/cbmc-cpp/String_Literal1/main.cpp similarity index 76% rename from regression/cpp-from-CVS/String_Literal1/main.cpp rename to regression/cbmc-cpp/String_Literal1/main.cpp index be5b566b2dc..6ae4227fc5e 100644 --- a/regression/cpp-from-CVS/String_Literal1/main.cpp +++ b/regression/cbmc-cpp/String_Literal1/main.cpp @@ -1,3 +1,4 @@ +#include int main() { const char *p="asd" "1"; diff --git a/regression/cbmc-cpp/String_Literal1/test.desc b/regression/cbmc-cpp/String_Literal1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/String_Literal1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates1/main.cpp b/regression/cbmc-cpp/Templates1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates1/main.cpp rename to regression/cbmc-cpp/Templates1/main.cpp diff --git a/regression/cpp-from-CVS/Templates36/test.desc b/regression/cbmc-cpp/Templates1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates36/test.desc rename to regression/cbmc-cpp/Templates1/test.desc diff --git a/regression/cpp-from-CVS/Templates10/main.cpp b/regression/cbmc-cpp/Templates10/main.cpp similarity index 92% rename from regression/cpp-from-CVS/Templates10/main.cpp rename to regression/cbmc-cpp/Templates10/main.cpp index 663719a98f0..9bb4e571b40 100644 --- a/regression/cpp-from-CVS/Templates10/main.cpp +++ b/regression/cbmc-cpp/Templates10/main.cpp @@ -1,3 +1,4 @@ +#include template int func() { diff --git a/regression/cbmc-cpp/Templates10/test.desc b/regression/cbmc-cpp/Templates10/test.desc new file mode 100644 index 00000000000..7791be248c7 --- /dev/null +++ b/regression/cbmc-cpp/Templates10/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates11/main.cpp b/regression/cbmc-cpp/Templates11/main.cpp similarity index 92% rename from regression/cpp-from-CVS/Templates11/main.cpp rename to regression/cbmc-cpp/Templates11/main.cpp index a4009d36437..f9c92cd02c6 100644 --- a/regression/cpp-from-CVS/Templates11/main.cpp +++ b/regression/cbmc-cpp/Templates11/main.cpp @@ -1,3 +1,4 @@ +#include template bool func(T t) {return false;} diff --git a/regression/cbmc-cpp/Templates11/test.desc b/regression/cbmc-cpp/Templates11/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates11/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates12/main.cpp b/regression/cbmc-cpp/Templates12/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates12/main.cpp rename to regression/cbmc-cpp/Templates12/main.cpp diff --git a/regression/cbmc-cpp/Templates12/test.desc b/regression/cbmc-cpp/Templates12/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates12/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates13/main.cpp b/regression/cbmc-cpp/Templates13/main.cpp similarity index 88% rename from regression/cpp-from-CVS/Templates13/main.cpp rename to regression/cbmc-cpp/Templates13/main.cpp index ec872c10100..8fdf52bcaf2 100644 --- a/regression/cpp-from-CVS/Templates13/main.cpp +++ b/regression/cbmc-cpp/Templates13/main.cpp @@ -1,3 +1,4 @@ +#include template bool func() { diff --git a/regression/cbmc-cpp/Templates13/test.desc b/regression/cbmc-cpp/Templates13/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates13/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates14/main.cpp b/regression/cbmc-cpp/Templates14/main.cpp similarity index 90% rename from regression/cpp-from-CVS/Templates14/main.cpp rename to regression/cbmc-cpp/Templates14/main.cpp index 05ee58aef23..02c19157f9d 100644 --- a/regression/cpp-from-CVS/Templates14/main.cpp +++ b/regression/cbmc-cpp/Templates14/main.cpp @@ -1,3 +1,4 @@ +#include namespace n1 { diff --git a/regression/cbmc-cpp/Templates14/test.desc b/regression/cbmc-cpp/Templates14/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates14/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates16/main.cpp b/regression/cbmc-cpp/Templates16/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates16/main.cpp rename to regression/cbmc-cpp/Templates16/main.cpp diff --git a/regression/cpp-from-CVS/Templates4/test.desc b/regression/cbmc-cpp/Templates16/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates4/test.desc rename to regression/cbmc-cpp/Templates16/test.desc diff --git a/regression/cpp-from-CVS/Templates17/main.cpp b/regression/cbmc-cpp/Templates17/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates17/main.cpp rename to regression/cbmc-cpp/Templates17/main.cpp diff --git a/regression/cpp-from-CVS/Constructor10/test.desc b/regression/cbmc-cpp/Templates17/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor10/test.desc rename to regression/cbmc-cpp/Templates17/test.desc diff --git a/regression/cpp-from-CVS/Templates18/main.cpp b/regression/cbmc-cpp/Templates18/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates18/main.cpp rename to regression/cbmc-cpp/Templates18/main.cpp diff --git a/regression/cpp-from-CVS/Constructor12/test.desc b/regression/cbmc-cpp/Templates18/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor12/test.desc rename to regression/cbmc-cpp/Templates18/test.desc diff --git a/regression/cpp-from-CVS/Templates19/main.cpp b/regression/cbmc-cpp/Templates19/main.cpp similarity index 92% rename from regression/cpp-from-CVS/Templates19/main.cpp rename to regression/cbmc-cpp/Templates19/main.cpp index 1c608e1c39c..dc7a1b24a5d 100644 --- a/regression/cpp-from-CVS/Templates19/main.cpp +++ b/regression/cbmc-cpp/Templates19/main.cpp @@ -1,3 +1,4 @@ +#include template struct A { diff --git a/regression/cbmc-cpp/Templates19/test.desc b/regression/cbmc-cpp/Templates19/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates19/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates20/main.cpp b/regression/cbmc-cpp/Templates20/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates20/main.cpp rename to regression/cbmc-cpp/Templates20/main.cpp diff --git a/regression/cpp-from-CVS/Templates6/test.desc b/regression/cbmc-cpp/Templates20/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates6/test.desc rename to regression/cbmc-cpp/Templates20/test.desc diff --git a/regression/cpp-from-CVS/Templates21/main.cpp b/regression/cbmc-cpp/Templates21/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates21/main.cpp rename to regression/cbmc-cpp/Templates21/main.cpp diff --git a/regression/cbmc-cpp/Templates21/test.desc b/regression/cbmc-cpp/Templates21/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates21/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates22/main.cpp b/regression/cbmc-cpp/Templates22/main.cpp similarity index 89% rename from regression/cpp-from-CVS/Templates22/main.cpp rename to regression/cbmc-cpp/Templates22/main.cpp index 49a57fbd5fe..e4eb86b1988 100644 --- a/regression/cpp-from-CVS/Templates22/main.cpp +++ b/regression/cbmc-cpp/Templates22/main.cpp @@ -1,3 +1,4 @@ +#include template T func(T* t) {return *t;} diff --git a/regression/cbmc-cpp/Templates22/test.desc b/regression/cbmc-cpp/Templates22/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates22/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates23/main.cpp b/regression/cbmc-cpp/Templates23/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates23/main.cpp rename to regression/cbmc-cpp/Templates23/main.cpp diff --git a/regression/cbmc-cpp/Templates23/test.desc b/regression/cbmc-cpp/Templates23/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates23/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates24/main.cpp b/regression/cbmc-cpp/Templates24/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates24/main.cpp rename to regression/cbmc-cpp/Templates24/main.cpp diff --git a/regression/cbmc-cpp/Templates24/test.desc b/regression/cbmc-cpp/Templates24/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates24/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cbmc-cpp/Templates25/main.cpp b/regression/cbmc-cpp/Templates25/main.cpp new file mode 100644 index 00000000000..fe3706ea34e --- /dev/null +++ b/regression/cbmc-cpp/Templates25/main.cpp @@ -0,0 +1,9 @@ +#include +template +bool True() {return true;} + +int main() +{ + bool result = True(); + assert(result == true); +} diff --git a/regression/cbmc-cpp/Templates25/test.desc b/regression/cbmc-cpp/Templates25/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates25/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates26/main.cpp b/regression/cbmc-cpp/Templates26/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates26/main.cpp rename to regression/cbmc-cpp/Templates26/main.cpp diff --git a/regression/cbmc-cpp/Templates26/test.desc b/regression/cbmc-cpp/Templates26/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates26/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates27/main.cpp b/regression/cbmc-cpp/Templates27/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates27/main.cpp rename to regression/cbmc-cpp/Templates27/main.cpp diff --git a/regression/cpp-from-CVS/Templates9/test.desc b/regression/cbmc-cpp/Templates27/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates9/test.desc rename to regression/cbmc-cpp/Templates27/test.desc diff --git a/regression/cpp-from-CVS/Templates28/main.cpp b/regression/cbmc-cpp/Templates28/main.cpp similarity index 90% rename from regression/cpp-from-CVS/Templates28/main.cpp rename to regression/cbmc-cpp/Templates28/main.cpp index ec4c4b48074..09eff76e555 100644 --- a/regression/cpp-from-CVS/Templates28/main.cpp +++ b/regression/cbmc-cpp/Templates28/main.cpp @@ -1,3 +1,4 @@ +#include template struct A diff --git a/regression/cbmc-cpp/Templates28/test.desc b/regression/cbmc-cpp/Templates28/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates28/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates29/main.cpp b/regression/cbmc-cpp/Templates29/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates29/main.cpp rename to regression/cbmc-cpp/Templates29/main.cpp diff --git a/regression/cpp-from-CVS/Temporary1/test.desc b/regression/cbmc-cpp/Templates29/test.desc similarity index 100% rename from regression/cpp-from-CVS/Temporary1/test.desc rename to regression/cbmc-cpp/Templates29/test.desc diff --git a/regression/cpp-from-CVS/Templates3/main.cpp b/regression/cbmc-cpp/Templates3/main.cpp similarity index 91% rename from regression/cpp-from-CVS/Templates3/main.cpp rename to regression/cbmc-cpp/Templates3/main.cpp index 4ce1d69707e..738d00faae7 100644 --- a/regression/cpp-from-CVS/Templates3/main.cpp +++ b/regression/cbmc-cpp/Templates3/main.cpp @@ -1,3 +1,4 @@ +#include template class int_array { diff --git a/regression/cbmc-cpp/Templates3/test.desc b/regression/cbmc-cpp/Templates3/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates3/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates30/main.cpp b/regression/cbmc-cpp/Templates30/main.cpp similarity index 89% rename from regression/cpp-from-CVS/Templates30/main.cpp rename to regression/cbmc-cpp/Templates30/main.cpp index fba925e76c6..b3d579231e6 100644 --- a/regression/cpp-from-CVS/Templates30/main.cpp +++ b/regression/cbmc-cpp/Templates30/main.cpp @@ -1,3 +1,4 @@ +#include template struct A { diff --git a/regression/cbmc-cpp/Templates30/test.desc b/regression/cbmc-cpp/Templates30/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Templates30/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates31/main.cpp b/regression/cbmc-cpp/Templates31/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates31/main.cpp rename to regression/cbmc-cpp/Templates31/main.cpp diff --git a/regression/cpp-from-CVS/Temporary2/test.desc b/regression/cbmc-cpp/Templates31/test.desc similarity index 100% rename from regression/cpp-from-CVS/Temporary2/test.desc rename to regression/cbmc-cpp/Templates31/test.desc diff --git a/regression/cpp-from-CVS/Templates32/main.cpp b/regression/cbmc-cpp/Templates32/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates32/main.cpp rename to regression/cbmc-cpp/Templates32/main.cpp diff --git a/regression/cpp-from-CVS/Typecast2/test.desc b/regression/cbmc-cpp/Templates32/test.desc similarity index 100% rename from regression/cpp-from-CVS/Typecast2/test.desc rename to regression/cbmc-cpp/Templates32/test.desc diff --git a/regression/cpp-from-CVS/Templates34/main.cpp b/regression/cbmc-cpp/Templates34/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates34/main.cpp rename to regression/cbmc-cpp/Templates34/main.cpp diff --git a/regression/cpp-from-CVS/Vector1/test.desc b/regression/cbmc-cpp/Templates34/test.desc similarity index 100% rename from regression/cpp-from-CVS/Vector1/test.desc rename to regression/cbmc-cpp/Templates34/test.desc diff --git a/regression/cpp-from-CVS/Templates35/main.cpp b/regression/cbmc-cpp/Templates35/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates35/main.cpp rename to regression/cbmc-cpp/Templates35/main.cpp diff --git a/regression/cpp-from-CVS/extractbits1/test.desc b/regression/cbmc-cpp/Templates35/test.desc similarity index 100% rename from regression/cpp-from-CVS/extractbits1/test.desc rename to regression/cbmc-cpp/Templates35/test.desc diff --git a/regression/cpp-from-CVS/Templates36/main.cpp b/regression/cbmc-cpp/Templates36/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates36/main.cpp rename to regression/cbmc-cpp/Templates36/main.cpp diff --git a/regression/cpp-from-CVS/initialization2/test.desc b/regression/cbmc-cpp/Templates36/test.desc similarity index 100% rename from regression/cpp-from-CVS/initialization2/test.desc rename to regression/cbmc-cpp/Templates36/test.desc diff --git a/regression/cpp-from-CVS/Templates4/main.cpp b/regression/cbmc-cpp/Templates4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates4/main.cpp rename to regression/cbmc-cpp/Templates4/main.cpp diff --git a/regression/cpp-from-CVS/initialization4/test.desc b/regression/cbmc-cpp/Templates4/test.desc similarity index 100% rename from regression/cpp-from-CVS/initialization4/test.desc rename to regression/cbmc-cpp/Templates4/test.desc diff --git a/regression/cpp-from-CVS/Templates5/main.cpp b/regression/cbmc-cpp/Templates5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates5/main.cpp rename to regression/cbmc-cpp/Templates5/main.cpp diff --git a/regression/cpp-from-CVS/initialization7/test.desc b/regression/cbmc-cpp/Templates5/test.desc similarity index 100% rename from regression/cpp-from-CVS/initialization7/test.desc rename to regression/cbmc-cpp/Templates5/test.desc diff --git a/regression/cpp-from-CVS/Templates6/main.cpp b/regression/cbmc-cpp/Templates6/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates6/main.cpp rename to regression/cbmc-cpp/Templates6/main.cpp diff --git a/regression/cpp-from-CVS/namespace2/test.desc b/regression/cbmc-cpp/Templates6/test.desc similarity index 100% rename from regression/cpp-from-CVS/namespace2/test.desc rename to regression/cbmc-cpp/Templates6/test.desc diff --git a/regression/cpp-from-CVS/Templates8/main.cpp b/regression/cbmc-cpp/Templates8/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates8/main.cpp rename to regression/cbmc-cpp/Templates8/main.cpp diff --git a/regression/cpp-from-CVS/union1/test.desc b/regression/cbmc-cpp/Templates8/test.desc similarity index 100% rename from regression/cpp-from-CVS/union1/test.desc rename to regression/cbmc-cpp/Templates8/test.desc diff --git a/regression/cpp-from-CVS/Templates9/main.cpp b/regression/cbmc-cpp/Templates9/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates9/main.cpp rename to regression/cbmc-cpp/Templates9/main.cpp diff --git a/regression/cpp-from-CVS/virtual1/test.desc b/regression/cbmc-cpp/Templates9/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual1/test.desc rename to regression/cbmc-cpp/Templates9/test.desc diff --git a/regression/cpp-from-CVS/Temporary1/main.cpp b/regression/cbmc-cpp/Temporary1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Temporary1/main.cpp rename to regression/cbmc-cpp/Temporary1/main.cpp diff --git a/regression/cpp-from-CVS/virtual13/test.desc b/regression/cbmc-cpp/Temporary1/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual13/test.desc rename to regression/cbmc-cpp/Temporary1/test.desc diff --git a/regression/cpp-from-CVS/Temporary2/main.cpp b/regression/cbmc-cpp/Temporary2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Temporary2/main.cpp rename to regression/cbmc-cpp/Temporary2/main.cpp diff --git a/regression/cpp-from-CVS/virtual14/test.desc b/regression/cbmc-cpp/Temporary2/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual14/test.desc rename to regression/cbmc-cpp/Temporary2/test.desc diff --git a/regression/cpp-from-CVS/Typecast1/main.cpp b/regression/cbmc-cpp/Typecast1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Typecast1/main.cpp rename to regression/cbmc-cpp/Typecast1/main.cpp diff --git a/regression/cpp-from-CVS/Constructor13/test.desc b/regression/cbmc-cpp/Typecast1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor13/test.desc rename to regression/cbmc-cpp/Typecast1/test.desc diff --git a/regression/cpp-from-CVS/Typecast2/main.cpp b/regression/cbmc-cpp/Typecast2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Typecast2/main.cpp rename to regression/cbmc-cpp/Typecast2/main.cpp diff --git a/regression/cpp-from-CVS/virtual15/test.desc b/regression/cbmc-cpp/Typecast2/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual15/test.desc rename to regression/cbmc-cpp/Typecast2/test.desc diff --git a/regression/cpp-from-CVS/Typedef1/main.cpp b/regression/cbmc-cpp/Typedef1/main.cpp similarity index 88% rename from regression/cpp-from-CVS/Typedef1/main.cpp rename to regression/cbmc-cpp/Typedef1/main.cpp index b273f0029d7..58c0005053e 100644 --- a/regression/cpp-from-CVS/Typedef1/main.cpp +++ b/regression/cbmc-cpp/Typedef1/main.cpp @@ -1,3 +1,4 @@ +#include struct A { int i; A(int i):i(i){} diff --git a/regression/cbmc-cpp/Typedef1/test.desc b/regression/cbmc-cpp/Typedef1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/Typedef1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Typedef2/main.cpp b/regression/cbmc-cpp/Typedef2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Typedef2/main.cpp rename to regression/cbmc-cpp/Typedef2/main.cpp diff --git a/regression/cpp-from-CVS/virtual4/test.desc b/regression/cbmc-cpp/Typedef2/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual4/test.desc rename to regression/cbmc-cpp/Typedef2/test.desc diff --git a/regression/cpp-from-CVS/Typedef3/main.cpp b/regression/cbmc-cpp/Typedef3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Typedef3/main.cpp rename to regression/cbmc-cpp/Typedef3/main.cpp diff --git a/regression/cpp-from-CVS/Constructor6/test.desc b/regression/cbmc-cpp/Typedef3/test.desc similarity index 89% rename from regression/cpp-from-CVS/Constructor6/test.desc rename to regression/cbmc-cpp/Typedef3/test.desc index 91d9cf8b52e..6666d172f47 100644 --- a/regression/cpp-from-CVS/Constructor6/test.desc +++ b/regression/cbmc-cpp/Typedef3/test.desc @@ -1,4 +1,4 @@ -CORE +KNOWNBUG main.cpp ^EXIT=0$ diff --git a/regression/cpp-from-CVS/Vector1/lib/container b/regression/cbmc-cpp/Vector1/lib/container similarity index 100% rename from regression/cpp-from-CVS/Vector1/lib/container rename to regression/cbmc-cpp/Vector1/lib/container diff --git a/regression/cpp-from-CVS/Vector1/lib/iterator b/regression/cbmc-cpp/Vector1/lib/iterator similarity index 100% rename from regression/cpp-from-CVS/Vector1/lib/iterator rename to regression/cbmc-cpp/Vector1/lib/iterator diff --git a/regression/cpp-from-CVS/Vector1/lib/list b/regression/cbmc-cpp/Vector1/lib/list similarity index 100% rename from regression/cpp-from-CVS/Vector1/lib/list rename to regression/cbmc-cpp/Vector1/lib/list diff --git a/regression/cpp-from-CVS/Vector1/lib/vector b/regression/cbmc-cpp/Vector1/lib/vector similarity index 100% rename from regression/cpp-from-CVS/Vector1/lib/vector rename to regression/cbmc-cpp/Vector1/lib/vector diff --git a/regression/cpp-from-CVS/Vector1/main.cpp b/regression/cbmc-cpp/Vector1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Vector1/main.cpp rename to regression/cbmc-cpp/Vector1/main.cpp diff --git a/regression/cpp-from-CVS/Conversion5/test.desc b/regression/cbmc-cpp/Vector1/test.desc similarity index 89% rename from regression/cpp-from-CVS/Conversion5/test.desc rename to regression/cbmc-cpp/Vector1/test.desc index 91d9cf8b52e..6666d172f47 100644 --- a/regression/cpp-from-CVS/Conversion5/test.desc +++ b/regression/cbmc-cpp/Vector1/test.desc @@ -1,4 +1,4 @@ -CORE +KNOWNBUG main.cpp ^EXIT=0$ diff --git a/regression/cpp-from-CVS/Zero_Initializer1/main.cpp b/regression/cbmc-cpp/Zero_Initializer1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Zero_Initializer1/main.cpp rename to regression/cbmc-cpp/Zero_Initializer1/main.cpp diff --git a/regression/cpp-from-CVS/Constructor9/test.desc b/regression/cbmc-cpp/Zero_Initializer1/test.desc similarity index 89% rename from regression/cpp-from-CVS/Constructor9/test.desc rename to regression/cbmc-cpp/Zero_Initializer1/test.desc index 91d9cf8b52e..6666d172f47 100644 --- a/regression/cpp-from-CVS/Constructor9/test.desc +++ b/regression/cbmc-cpp/Zero_Initializer1/test.desc @@ -1,4 +1,4 @@ -CORE +KNOWNBUG main.cpp ^EXIT=0$ diff --git a/regression/cpp-from-CVS/argv1/main.cpp b/regression/cbmc-cpp/argv1/main.cpp similarity index 88% rename from regression/cpp-from-CVS/argv1/main.cpp rename to regression/cbmc-cpp/argv1/main.cpp index 50005130da9..4f08d930db1 100644 --- a/regression/cpp-from-CVS/argv1/main.cpp +++ b/regression/cbmc-cpp/argv1/main.cpp @@ -1,3 +1,4 @@ +#include int main(int argc, char **argv) { char *x; diff --git a/regression/cbmc-cpp/argv1/test.desc b/regression/cbmc-cpp/argv1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/argv1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/const_cast1/main.cpp b/regression/cbmc-cpp/const_cast1/main.cpp similarity index 89% rename from regression/cpp-from-CVS/const_cast1/main.cpp rename to regression/cbmc-cpp/const_cast1/main.cpp index a9c87d2d255..deadf8e634c 100644 --- a/regression/cpp-from-CVS/const_cast1/main.cpp +++ b/regression/cbmc-cpp/const_cast1/main.cpp @@ -1,3 +1,4 @@ +#include int main() { int i = 10; diff --git a/regression/cbmc-cpp/const_cast1/test.desc b/regression/cbmc-cpp/const_cast1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/const_cast1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/extractbits1/main.cpp b/regression/cbmc-cpp/extractbits1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/extractbits1/main.cpp rename to regression/cbmc-cpp/extractbits1/main.cpp diff --git a/regression/cpp-from-CVS/Constructor5/test.desc b/regression/cbmc-cpp/extractbits1/test.desc similarity index 89% rename from regression/cpp-from-CVS/Constructor5/test.desc rename to regression/cbmc-cpp/extractbits1/test.desc index 91d9cf8b52e..6666d172f47 100644 --- a/regression/cpp-from-CVS/Constructor5/test.desc +++ b/regression/cbmc-cpp/extractbits1/test.desc @@ -1,4 +1,4 @@ -CORE +KNOWNBUG main.cpp ^EXIT=0$ diff --git a/regression/cpp-from-CVS/for1/main.cpp b/regression/cbmc-cpp/for1/main.cpp similarity index 79% rename from regression/cpp-from-CVS/for1/main.cpp rename to regression/cbmc-cpp/for1/main.cpp index fceefb1d29a..7c8935a0d6d 100644 --- a/regression/cpp-from-CVS/for1/main.cpp +++ b/regression/cbmc-cpp/for1/main.cpp @@ -1,3 +1,4 @@ +#include int main() { int i; diff --git a/regression/cbmc-cpp/for1/test.desc b/regression/cbmc-cpp/for1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/for1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/initialization1/main.cpp b/regression/cbmc-cpp/initialization1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/initialization1/main.cpp rename to regression/cbmc-cpp/initialization1/main.cpp diff --git a/regression/cbmc-cpp/initialization1/test.desc b/regression/cbmc-cpp/initialization1/test.desc new file mode 100644 index 00000000000..6666d172f47 --- /dev/null +++ b/regression/cbmc-cpp/initialization1/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/initialization2/main.cpp b/regression/cbmc-cpp/initialization2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/initialization2/main.cpp rename to regression/cbmc-cpp/initialization2/main.cpp diff --git a/regression/cbmc-cpp/initialization2/test.desc b/regression/cbmc-cpp/initialization2/test.desc new file mode 100644 index 00000000000..6666d172f47 --- /dev/null +++ b/regression/cbmc-cpp/initialization2/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/initialization3/main.cpp b/regression/cbmc-cpp/initialization3/main.cpp similarity index 81% rename from regression/cpp-from-CVS/initialization3/main.cpp rename to regression/cbmc-cpp/initialization3/main.cpp index 49fa931c550..c9c2b87b355 100644 --- a/regression/cpp-from-CVS/initialization3/main.cpp +++ b/regression/cbmc-cpp/initialization3/main.cpp @@ -1,3 +1,4 @@ +#include class A { public: diff --git a/regression/cpp-from-CVS/initialization3/test.desc b/regression/cbmc-cpp/initialization3/test.desc similarity index 70% rename from regression/cpp-from-CVS/initialization3/test.desc rename to regression/cbmc-cpp/initialization3/test.desc index e778f120e58..9cae882a31f 100644 --- a/regression/cpp-from-CVS/initialization3/test.desc +++ b/regression/cbmc-cpp/initialization3/test.desc @@ -1,4 +1,4 @@ -CORE +CORE winbug macos-assert-broken main.cpp ^EXIT=10$ diff --git a/regression/cpp-from-CVS/initialization4/main.cpp b/regression/cbmc-cpp/initialization4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/initialization4/main.cpp rename to regression/cbmc-cpp/initialization4/main.cpp diff --git a/regression/cbmc-cpp/initialization4/test.desc b/regression/cbmc-cpp/initialization4/test.desc new file mode 100644 index 00000000000..6666d172f47 --- /dev/null +++ b/regression/cbmc-cpp/initialization4/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/initialization5/main.cpp b/regression/cbmc-cpp/initialization5/main.cpp similarity index 90% rename from regression/cpp-from-CVS/initialization5/main.cpp rename to regression/cbmc-cpp/initialization5/main.cpp index f96693bcda3..8add1dd8a09 100644 --- a/regression/cpp-from-CVS/initialization5/main.cpp +++ b/regression/cbmc-cpp/initialization5/main.cpp @@ -1,3 +1,4 @@ +#include int a[__CPROVER::constant_infinity_uint]; struct A { diff --git a/regression/cbmc-cpp/initialization5/test.desc b/regression/cbmc-cpp/initialization5/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/initialization5/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/initialization6/main.cpp b/regression/cbmc-cpp/initialization6/main.cpp similarity index 100% rename from regression/cpp-from-CVS/initialization6/main.cpp rename to regression/cbmc-cpp/initialization6/main.cpp diff --git a/regression/cpp-from-CVS/initialization6/test.desc b/regression/cbmc-cpp/initialization6/test.desc similarity index 100% rename from regression/cpp-from-CVS/initialization6/test.desc rename to regression/cbmc-cpp/initialization6/test.desc diff --git a/regression/cpp-from-CVS/initialization7/main.cpp b/regression/cbmc-cpp/initialization7/main.cpp similarity index 100% rename from regression/cpp-from-CVS/initialization7/main.cpp rename to regression/cbmc-cpp/initialization7/main.cpp diff --git a/regression/cbmc-cpp/initialization7/test.desc b/regression/cbmc-cpp/initialization7/test.desc new file mode 100644 index 00000000000..6666d172f47 --- /dev/null +++ b/regression/cbmc-cpp/initialization7/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/namespace1/main.cpp b/regression/cbmc-cpp/namespace1/main.cpp similarity index 92% rename from regression/cpp-from-CVS/namespace1/main.cpp rename to regression/cbmc-cpp/namespace1/main.cpp index ec80f03b257..484b3b14624 100644 --- a/regression/cpp-from-CVS/namespace1/main.cpp +++ b/regression/cbmc-cpp/namespace1/main.cpp @@ -1,3 +1,4 @@ +#include namespace test_space { diff --git a/regression/cbmc-cpp/namespace1/test.desc b/regression/cbmc-cpp/namespace1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/namespace1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/namespace2/main.cpp b/regression/cbmc-cpp/namespace2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/namespace2/main.cpp rename to regression/cbmc-cpp/namespace2/main.cpp diff --git a/regression/cbmc-cpp/namespace2/test.desc b/regression/cbmc-cpp/namespace2/test.desc new file mode 100644 index 00000000000..6666d172f47 --- /dev/null +++ b/regression/cbmc-cpp/namespace2/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/namespace3/main.cpp b/regression/cbmc-cpp/namespace3/main.cpp similarity index 85% rename from regression/cpp-from-CVS/namespace3/main.cpp rename to regression/cbmc-cpp/namespace3/main.cpp index 1510725fb37..a70b2ec42a9 100644 --- a/regression/cpp-from-CVS/namespace3/main.cpp +++ b/regression/cbmc-cpp/namespace3/main.cpp @@ -1,3 +1,4 @@ +#include namespace std { struct A {int i; }; diff --git a/regression/cbmc-cpp/namespace3/test.desc b/regression/cbmc-cpp/namespace3/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/namespace3/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/new1/main.cpp b/regression/cbmc-cpp/new1/main.cpp similarity index 92% rename from regression/cpp-from-CVS/new1/main.cpp rename to regression/cbmc-cpp/new1/main.cpp index e0c73bb2a2a..605f3f4c710 100644 --- a/regression/cpp-from-CVS/new1/main.cpp +++ b/regression/cbmc-cpp/new1/main.cpp @@ -1,3 +1,4 @@ +#include void single_object() { int *p; diff --git a/regression/cpp-from-CVS/new1/test.desc b/regression/cbmc-cpp/new1/test.desc similarity index 74% rename from regression/cpp-from-CVS/new1/test.desc rename to regression/cbmc-cpp/new1/test.desc index 261ae194d03..404ace834a8 100644 --- a/regression/cpp-from-CVS/new1/test.desc +++ b/regression/cbmc-cpp/new1/test.desc @@ -1,4 +1,4 @@ -CORE +CORE winbug macos-assert-broken main.cpp --pointer-check ^EXIT=0$ diff --git a/regression/cpp-from-CVS/operators/main.cpp b/regression/cbmc-cpp/operators/main.cpp similarity index 96% rename from regression/cpp-from-CVS/operators/main.cpp rename to regression/cbmc-cpp/operators/main.cpp index b19aa87829a..fddc9500c19 100644 --- a/regression/cpp-from-CVS/operators/main.cpp +++ b/regression/cbmc-cpp/operators/main.cpp @@ -1,3 +1,4 @@ +#include class I { int i; diff --git a/regression/cbmc-cpp/operators/test.desc b/regression/cbmc-cpp/operators/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/operators/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/reinterpret_cast1/main.cpp b/regression/cbmc-cpp/reinterpret_cast1/main.cpp similarity index 88% rename from regression/cpp-from-CVS/reinterpret_cast1/main.cpp rename to regression/cbmc-cpp/reinterpret_cast1/main.cpp index d27456e556c..a0c0dbe35a3 100644 --- a/regression/cpp-from-CVS/reinterpret_cast1/main.cpp +++ b/regression/cbmc-cpp/reinterpret_cast1/main.cpp @@ -1,3 +1,4 @@ +#include int main() { int v = 256; diff --git a/regression/cpp-from-CVS/reinterpret_cast1/test.desc b/regression/cbmc-cpp/reinterpret_cast1/test.desc similarity index 74% rename from regression/cpp-from-CVS/reinterpret_cast1/test.desc rename to regression/cbmc-cpp/reinterpret_cast1/test.desc index 5249662e6aa..89db603c00c 100644 --- a/regression/cpp-from-CVS/reinterpret_cast1/test.desc +++ b/regression/cbmc-cpp/reinterpret_cast1/test.desc @@ -1,4 +1,4 @@ -CORE +CORE winbug macos-assert-broken main.cpp --little-endian ^EXIT=0$ diff --git a/regression/cpp-from-CVS/reinterpret_cast2/main.cpp b/regression/cbmc-cpp/reinterpret_cast2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/reinterpret_cast2/main.cpp rename to regression/cbmc-cpp/reinterpret_cast2/main.cpp diff --git a/regression/cpp-from-CVS/Constructor15/test.desc b/regression/cbmc-cpp/reinterpret_cast2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor15/test.desc rename to regression/cbmc-cpp/reinterpret_cast2/test.desc diff --git a/regression/cpp-from-CVS/static_cast1/main.cpp b/regression/cbmc-cpp/static_cast1/main.cpp similarity index 83% rename from regression/cpp-from-CVS/static_cast1/main.cpp rename to regression/cbmc-cpp/static_cast1/main.cpp index 0e06d85ac00..5214975b260 100644 --- a/regression/cpp-from-CVS/static_cast1/main.cpp +++ b/regression/cbmc-cpp/static_cast1/main.cpp @@ -1,3 +1,4 @@ +#include int main() { // this is ok diff --git a/regression/cbmc-cpp/static_cast1/test.desc b/regression/cbmc-cpp/static_cast1/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/static_cast1/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/static_cast2/main.cpp b/regression/cbmc-cpp/static_cast2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/static_cast2/main.cpp rename to regression/cbmc-cpp/static_cast2/main.cpp diff --git a/regression/cpp-from-CVS/Reference5/test.desc b/regression/cbmc-cpp/static_cast2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Reference5/test.desc rename to regression/cbmc-cpp/static_cast2/test.desc diff --git a/regression/cpp-from-CVS/static_cast3/main.cpp b/regression/cbmc-cpp/static_cast3/main.cpp similarity index 92% rename from regression/cpp-from-CVS/static_cast3/main.cpp rename to regression/cbmc-cpp/static_cast3/main.cpp index fdb99bbec65..73b507e6a4e 100644 --- a/regression/cpp-from-CVS/static_cast3/main.cpp +++ b/regression/cbmc-cpp/static_cast3/main.cpp @@ -1,3 +1,4 @@ +#include struct A { int i; }; diff --git a/regression/cbmc-cpp/static_cast3/test.desc b/regression/cbmc-cpp/static_cast3/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/static_cast3/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/static_cast4/main.cpp b/regression/cbmc-cpp/static_cast4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/static_cast4/main.cpp rename to regression/cbmc-cpp/static_cast4/main.cpp diff --git a/regression/cpp-from-CVS/Templates15/test.desc b/regression/cbmc-cpp/static_cast4/test.desc similarity index 100% rename from regression/cpp-from-CVS/Templates15/test.desc rename to regression/cbmc-cpp/static_cast4/test.desc diff --git a/regression/cpp-from-CVS/static_cast5/main.cpp b/regression/cbmc-cpp/static_cast5/main.cpp similarity index 93% rename from regression/cpp-from-CVS/static_cast5/main.cpp rename to regression/cbmc-cpp/static_cast5/main.cpp index e324d8604e8..3f3a1a03cfe 100644 --- a/regression/cpp-from-CVS/static_cast5/main.cpp +++ b/regression/cbmc-cpp/static_cast5/main.cpp @@ -1,3 +1,4 @@ +#include struct A { int i; diff --git a/regression/cbmc-cpp/static_cast5/test.desc b/regression/cbmc-cpp/static_cast5/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/static_cast5/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/struct1/main.cpp b/regression/cbmc-cpp/struct1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/struct1/main.cpp rename to regression/cbmc-cpp/struct1/main.cpp diff --git a/regression/cpp-from-CVS/Constructor2/test.desc b/regression/cbmc-cpp/struct1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor2/test.desc rename to regression/cbmc-cpp/struct1/test.desc diff --git a/regression/cpp-from-CVS/typecast_ambiguity3/main.cpp b/regression/cbmc-cpp/typecast_ambiguity3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/typecast_ambiguity3/main.cpp rename to regression/cbmc-cpp/typecast_ambiguity3/main.cpp diff --git a/regression/cbmc-cpp/typecast_ambiguity3/test.desc b/regression/cbmc-cpp/typecast_ambiguity3/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/typecast_ambiguity3/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/typename1/main.cpp b/regression/cbmc-cpp/typename1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/typename1/main.cpp rename to regression/cbmc-cpp/typename1/main.cpp diff --git a/regression/cpp-from-CVS/Constructor3/test.desc b/regression/cbmc-cpp/typename1/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor3/test.desc rename to regression/cbmc-cpp/typename1/test.desc diff --git a/regression/cpp-from-CVS/typename2/main.cpp b/regression/cbmc-cpp/typename2/main.cpp similarity index 100% rename from regression/cpp-from-CVS/typename2/main.cpp rename to regression/cbmc-cpp/typename2/main.cpp diff --git a/regression/cpp-from-CVS/Constructor4/test.desc b/regression/cbmc-cpp/typename2/test.desc similarity index 100% rename from regression/cpp-from-CVS/Constructor4/test.desc rename to regression/cbmc-cpp/typename2/test.desc diff --git a/regression/cpp-from-CVS/union1/main.cpp b/regression/cbmc-cpp/union1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/union1/main.cpp rename to regression/cbmc-cpp/union1/main.cpp diff --git a/regression/cbmc-cpp/union1/test.desc b/regression/cbmc-cpp/union1/test.desc new file mode 100644 index 00000000000..6666d172f47 --- /dev/null +++ b/regression/cbmc-cpp/union1/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/virtual1/main.cpp b/regression/cbmc-cpp/virtual1/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual1/main.cpp rename to regression/cbmc-cpp/virtual1/main.cpp diff --git a/regression/cbmc-cpp/virtual1/test.desc b/regression/cbmc-cpp/virtual1/test.desc new file mode 100644 index 00000000000..6666d172f47 --- /dev/null +++ b/regression/cbmc-cpp/virtual1/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/virtual10/main.cpp b/regression/cbmc-cpp/virtual10/main.cpp similarity index 90% rename from regression/cpp-from-CVS/virtual10/main.cpp rename to regression/cbmc-cpp/virtual10/main.cpp index 43d5480fd12..c2d943c6b13 100644 --- a/regression/cpp-from-CVS/virtual10/main.cpp +++ b/regression/cbmc-cpp/virtual10/main.cpp @@ -1,3 +1,4 @@ +#include struct A { virtual bool func() const {return true;} diff --git a/regression/cbmc-cpp/virtual10/test.desc b/regression/cbmc-cpp/virtual10/test.desc new file mode 100644 index 00000000000..307a2ce0d75 --- /dev/null +++ b/regression/cbmc-cpp/virtual10/test.desc @@ -0,0 +1,7 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- diff --git a/regression/cpp-from-CVS/virtual11/main.cpp b/regression/cbmc-cpp/virtual11/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual11/main.cpp rename to regression/cbmc-cpp/virtual11/main.cpp diff --git a/regression/cpp-from-CVS/virtual11/test.desc b/regression/cbmc-cpp/virtual11/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual11/test.desc rename to regression/cbmc-cpp/virtual11/test.desc diff --git a/regression/cpp-from-CVS/virtual12/main.cpp b/regression/cbmc-cpp/virtual12/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual12/main.cpp rename to regression/cbmc-cpp/virtual12/main.cpp diff --git a/regression/cpp-from-CVS/virtual12/test.desc b/regression/cbmc-cpp/virtual12/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual12/test.desc rename to regression/cbmc-cpp/virtual12/test.desc diff --git a/regression/cpp-from-CVS/virtual13/main.cpp b/regression/cbmc-cpp/virtual13/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual13/main.cpp rename to regression/cbmc-cpp/virtual13/main.cpp diff --git a/regression/cbmc-cpp/virtual13/test.desc b/regression/cbmc-cpp/virtual13/test.desc new file mode 100644 index 00000000000..6666d172f47 --- /dev/null +++ b/regression/cbmc-cpp/virtual13/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/virtual14/main.cpp b/regression/cbmc-cpp/virtual14/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual14/main.cpp rename to regression/cbmc-cpp/virtual14/main.cpp diff --git a/regression/cbmc-cpp/virtual14/test.desc b/regression/cbmc-cpp/virtual14/test.desc new file mode 100644 index 00000000000..6666d172f47 --- /dev/null +++ b/regression/cbmc-cpp/virtual14/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/virtual15/main.cpp b/regression/cbmc-cpp/virtual15/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual15/main.cpp rename to regression/cbmc-cpp/virtual15/main.cpp diff --git a/regression/cbmc-cpp/virtual15/test.desc b/regression/cbmc-cpp/virtual15/test.desc new file mode 100644 index 00000000000..6666d172f47 --- /dev/null +++ b/regression/cbmc-cpp/virtual15/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/virtual2/main.cpp b/regression/cbmc-cpp/virtual2/main.cpp similarity index 89% rename from regression/cpp-from-CVS/virtual2/main.cpp rename to regression/cbmc-cpp/virtual2/main.cpp index 9ef8f7de453..d36385dba76 100644 --- a/regression/cpp-from-CVS/virtual2/main.cpp +++ b/regression/cbmc-cpp/virtual2/main.cpp @@ -1,3 +1,4 @@ +#include int g; class X diff --git a/regression/cbmc-cpp/virtual2/test.desc b/regression/cbmc-cpp/virtual2/test.desc new file mode 100644 index 00000000000..fb16a88c617 --- /dev/null +++ b/regression/cbmc-cpp/virtual2/test.desc @@ -0,0 +1,8 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/virtual3/main.cpp b/regression/cbmc-cpp/virtual3/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual3/main.cpp rename to regression/cbmc-cpp/virtual3/main.cpp diff --git a/regression/cpp-from-CVS/virtual3/test.desc b/regression/cbmc-cpp/virtual3/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual3/test.desc rename to regression/cbmc-cpp/virtual3/test.desc diff --git a/regression/cpp-from-CVS/virtual4/main.cpp b/regression/cbmc-cpp/virtual4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual4/main.cpp rename to regression/cbmc-cpp/virtual4/main.cpp diff --git a/regression/cbmc-cpp/virtual4/test.desc b/regression/cbmc-cpp/virtual4/test.desc new file mode 100644 index 00000000000..6666d172f47 --- /dev/null +++ b/regression/cbmc-cpp/virtual4/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/virtual5/main.cpp b/regression/cbmc-cpp/virtual5/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual5/main.cpp rename to regression/cbmc-cpp/virtual5/main.cpp diff --git a/regression/cpp-from-CVS/virtual5/test.desc b/regression/cbmc-cpp/virtual5/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual5/test.desc rename to regression/cbmc-cpp/virtual5/test.desc diff --git a/regression/cpp-from-CVS/virtual6/main.cpp b/regression/cbmc-cpp/virtual6/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual6/main.cpp rename to regression/cbmc-cpp/virtual6/main.cpp diff --git a/regression/cpp-from-CVS/virtual6/test.desc b/regression/cbmc-cpp/virtual6/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual6/test.desc rename to regression/cbmc-cpp/virtual6/test.desc diff --git a/regression/cpp-from-CVS/virtual7/main.cpp b/regression/cbmc-cpp/virtual7/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual7/main.cpp rename to regression/cbmc-cpp/virtual7/main.cpp diff --git a/regression/cpp-from-CVS/virtual7/test.desc b/regression/cbmc-cpp/virtual7/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual7/test.desc rename to regression/cbmc-cpp/virtual7/test.desc diff --git a/regression/cpp-from-CVS/virtual8/main.cpp b/regression/cbmc-cpp/virtual8/main.cpp similarity index 100% rename from regression/cpp-from-CVS/virtual8/main.cpp rename to regression/cbmc-cpp/virtual8/main.cpp diff --git a/regression/cpp-from-CVS/virtual8/test.desc b/regression/cbmc-cpp/virtual8/test.desc similarity index 100% rename from regression/cpp-from-CVS/virtual8/test.desc rename to regression/cbmc-cpp/virtual8/test.desc diff --git a/regression/cpp-from-CVS/virtual9/main.cpp b/regression/cbmc-cpp/virtual9/main.cpp similarity index 87% rename from regression/cpp-from-CVS/virtual9/main.cpp rename to regression/cbmc-cpp/virtual9/main.cpp index 5562e35c41a..152f5998e77 100644 --- a/regression/cpp-from-CVS/virtual9/main.cpp +++ b/regression/cbmc-cpp/virtual9/main.cpp @@ -1,3 +1,4 @@ +#include struct A { virtual int& func(int& i){return i;} diff --git a/regression/cbmc-cpp/virtual9/test.desc b/regression/cbmc-cpp/virtual9/test.desc new file mode 100644 index 00000000000..307a2ce0d75 --- /dev/null +++ b/regression/cbmc-cpp/virtual9/test.desc @@ -0,0 +1,7 @@ +CORE winbug macos-assert-broken +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- diff --git a/regression/cpp-from-CVS/Conversion6/test.desc b/regression/cpp-from-CVS/Conversion6/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Conversion6/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Conversion_Operator2/test.desc b/regression/cpp-from-CVS/Conversion_Operator2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Conversion_Operator2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Conversion_Operator3/test.desc b/regression/cpp-from-CVS/Conversion_Operator3/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Conversion_Operator3/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Conversion_Operator4/test.desc b/regression/cpp-from-CVS/Conversion_Operator4/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Conversion_Operator4/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Default_Arguments1/test.desc b/regression/cpp-from-CVS/Default_Arguments1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Default_Arguments1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Default_Arguments2/test.desc b/regression/cpp-from-CVS/Default_Arguments2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Default_Arguments2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Destructor3/test.desc b/regression/cpp-from-CVS/Destructor3/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Destructor3/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Destructor4/test.desc b/regression/cpp-from-CVS/Destructor4/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Destructor4/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Destructor5/test.desc b/regression/cpp-from-CVS/Destructor5/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Destructor5/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Destructor_with_PtrMember/test.desc b/regression/cpp-from-CVS/Destructor_with_PtrMember/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Destructor_with_PtrMember/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Float1/test.desc b/regression/cpp-from-CVS/Float1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Float1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Friend1/test.desc b/regression/cpp-from-CVS/Friend1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Friend1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Friend3/test.desc b/regression/cpp-from-CVS/Friend3/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Friend3/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Friend5/test.desc b/regression/cpp-from-CVS/Friend5/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Friend5/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Function_Arguments1/test.desc b/regression/cpp-from-CVS/Function_Arguments1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Function_Arguments1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Function_Arguments2/test.desc b/regression/cpp-from-CVS/Function_Arguments2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Function_Arguments2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Function_Arguments5/test.desc b/regression/cpp-from-CVS/Function_Arguments5/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Function_Arguments5/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Function_Pointer1/test.desc b/regression/cpp-from-CVS/Function_Pointer1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Function_Pointer1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Implicit_Conversion1/test.desc b/regression/cpp-from-CVS/Implicit_Conversion1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Implicit_Conversion1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Implicit_Conversion4/test.desc b/regression/cpp-from-CVS/Implicit_Conversion4/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Implicit_Conversion4/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Implicit_Conversion6/test.desc b/regression/cpp-from-CVS/Implicit_Conversion6/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Implicit_Conversion6/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Implicit_Conversion7/test.desc b/regression/cpp-from-CVS/Implicit_Conversion7/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Implicit_Conversion7/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Implicit_Conversion9/test.desc b/regression/cpp-from-CVS/Implicit_Conversion9/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Implicit_Conversion9/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Inheritance1/test.desc b/regression/cpp-from-CVS/Inheritance1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Inheritance1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Inheritance3/test.desc b/regression/cpp-from-CVS/Inheritance3/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Inheritance3/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Inheritance4/test.desc b/regression/cpp-from-CVS/Inheritance4/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Inheritance4/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Initializer1/test.desc b/regression/cpp-from-CVS/Initializer1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Initializer1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Label0/test.desc b/regression/cpp-from-CVS/Label0/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Label0/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Makefile b/regression/cpp-from-CVS/Makefile deleted file mode 100644 index ffb0862dedd..00000000000 --- a/regression/cpp-from-CVS/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -default: tests.log - -test: - @../test.pl -c cbmc - -tests.log: ../test.pl - @../test.pl -c cbmc - -show: - @for dir in *; do \ - if [ -d "$$dir" ]; then \ - vim -o "$$dir/main.c" "$$dir/main.out"; \ - fi; \ - done; - -clean: - find . -name '*.out' -execdir $(RM) '{}' \; - find . -name '*.gb' -execdir $(RM) '{}' \; - $(RM) tests.log diff --git a/regression/cpp-from-CVS/Member_Access_in_Class/test.desc b/regression/cpp-from-CVS/Member_Access_in_Class/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Member_Access_in_Class/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Mutable1/test.desc b/regression/cpp-from-CVS/Mutable1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Mutable1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Functions1/test.desc b/regression/cpp-from-CVS/Overloading_Functions1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Overloading_Functions1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Functions3/test.desc b/regression/cpp-from-CVS/Overloading_Functions3/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Overloading_Functions3/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Functions4/test.desc b/regression/cpp-from-CVS/Overloading_Functions4/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Overloading_Functions4/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Increment1/test.desc b/regression/cpp-from-CVS/Overloading_Increment1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Overloading_Increment1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Members1/test.desc b/regression/cpp-from-CVS/Overloading_Members1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Overloading_Members1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Operators12/test.desc b/regression/cpp-from-CVS/Overloading_Operators12/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Overloading_Operators12/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Operators13/test.desc b/regression/cpp-from-CVS/Overloading_Operators13/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Overloading_Operators13/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Operators2/test.desc b/regression/cpp-from-CVS/Overloading_Operators2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Overloading_Operators2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Operators7/test.desc b/regression/cpp-from-CVS/Overloading_Operators7/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Overloading_Operators7/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Overloading_Operators8/test.desc b/regression/cpp-from-CVS/Overloading_Operators8/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Overloading_Operators8/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Pointer_Conversion2/test.desc b/regression/cpp-from-CVS/Pointer_Conversion2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Pointer_Conversion2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Pointer_To_Member1/test.desc b/regression/cpp-from-CVS/Pointer_To_Member1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Pointer_To_Member1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Pointer_To_Member5/test.desc b/regression/cpp-from-CVS/Pointer_To_Member5/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Pointer_To_Member5/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Protection2/test.desc b/regression/cpp-from-CVS/Protection2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Protection2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Protection7/test.desc b/regression/cpp-from-CVS/Protection7/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Protection7/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Qualifier2/test.desc b/regression/cpp-from-CVS/Qualifier2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Qualifier2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Reference2/test.desc b/regression/cpp-from-CVS/Reference2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Reference2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Reference3/test.desc b/regression/cpp-from-CVS/Reference3/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Reference3/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Reference6/test.desc b/regression/cpp-from-CVS/Reference6/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Reference6/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Reference7/test.desc b/regression/cpp-from-CVS/Reference7/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Reference7/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Resolver6/test.desc b/regression/cpp-from-CVS/Resolver6/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Resolver6/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Resolver7/test.desc b/regression/cpp-from-CVS/Resolver7/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Resolver7/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Resolver8/test.desc b/regression/cpp-from-CVS/Resolver8/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Resolver8/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Resolver9/test.desc b/regression/cpp-from-CVS/Resolver9/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Resolver9/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Static_Member1/test.desc b/regression/cpp-from-CVS/Static_Member1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Static_Member1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Static_Member_Function/test.desc b/regression/cpp-from-CVS/Static_Member_Function/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Static_Member_Function/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Static_Method1/test.desc b/regression/cpp-from-CVS/Static_Method1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Static_Method1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/String_Literal1/test.desc b/regression/cpp-from-CVS/String_Literal1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/String_Literal1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates1/test.desc b/regression/cpp-from-CVS/Templates1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates10/test.desc b/regression/cpp-from-CVS/Templates10/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates10/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates11/test.desc b/regression/cpp-from-CVS/Templates11/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates11/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates12/test.desc b/regression/cpp-from-CVS/Templates12/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates12/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates13/test.desc b/regression/cpp-from-CVS/Templates13/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates13/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates14/test.desc b/regression/cpp-from-CVS/Templates14/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates14/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates17/test.desc b/regression/cpp-from-CVS/Templates17/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates17/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates18/test.desc b/regression/cpp-from-CVS/Templates18/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates18/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates19/test.desc b/regression/cpp-from-CVS/Templates19/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates19/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates21/test.desc b/regression/cpp-from-CVS/Templates21/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates21/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates22/test.desc b/regression/cpp-from-CVS/Templates22/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates22/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates23/test.desc b/regression/cpp-from-CVS/Templates23/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates23/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates24/test.desc b/regression/cpp-from-CVS/Templates24/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates24/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates25/main.cpp b/regression/cpp-from-CVS/Templates25/main.cpp deleted file mode 100644 index 205eaeb8be7..00000000000 --- a/regression/cpp-from-CVS/Templates25/main.cpp +++ /dev/null @@ -1,7 +0,0 @@ -template -bool True() {return true;} - -int main() -{ - assert(True()==true); -} diff --git a/regression/cpp-from-CVS/Templates25/test.desc b/regression/cpp-from-CVS/Templates25/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates25/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates26/test.desc b/regression/cpp-from-CVS/Templates26/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates26/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates28/test.desc b/regression/cpp-from-CVS/Templates28/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates28/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates3/test.desc b/regression/cpp-from-CVS/Templates3/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates3/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates30/test.desc b/regression/cpp-from-CVS/Templates30/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates30/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates33/test.desc b/regression/cpp-from-CVS/Templates33/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates33/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates35/test.desc b/regression/cpp-from-CVS/Templates35/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates35/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates5/test.desc b/regression/cpp-from-CVS/Templates5/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates5/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Templates8/test.desc b/regression/cpp-from-CVS/Templates8/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Templates8/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Typecast1/test.desc b/regression/cpp-from-CVS/Typecast1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Typecast1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Typedef1/test.desc b/regression/cpp-from-CVS/Typedef1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Typedef1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Typedef2/test.desc b/regression/cpp-from-CVS/Typedef2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Typedef2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Typedef3/test.desc b/regression/cpp-from-CVS/Typedef3/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Typedef3/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/Zero_Initializer1/test.desc b/regression/cpp-from-CVS/Zero_Initializer1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/Zero_Initializer1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/argv1/test.desc b/regression/cpp-from-CVS/argv1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/argv1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/const_cast1/test.desc b/regression/cpp-from-CVS/const_cast1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/const_cast1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/for1/test.desc b/regression/cpp-from-CVS/for1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/for1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/initialization1/test.desc b/regression/cpp-from-CVS/initialization1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/initialization1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/initialization5/test.desc b/regression/cpp-from-CVS/initialization5/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/initialization5/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/namespace1/test.desc b/regression/cpp-from-CVS/namespace1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/namespace1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/namespace3/test.desc b/regression/cpp-from-CVS/namespace3/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/namespace3/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/operators/test.desc b/regression/cpp-from-CVS/operators/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/operators/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/reinterpret_cast2/test.desc b/regression/cpp-from-CVS/reinterpret_cast2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/reinterpret_cast2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/static_cast1/test.desc b/regression/cpp-from-CVS/static_cast1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/static_cast1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/static_cast3/test.desc b/regression/cpp-from-CVS/static_cast3/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/static_cast3/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/static_cast5/test.desc b/regression/cpp-from-CVS/static_cast5/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/static_cast5/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/struct1/test.desc b/regression/cpp-from-CVS/struct1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/struct1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/typecast_ambiguity3/test.desc b/regression/cpp-from-CVS/typecast_ambiguity3/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/typecast_ambiguity3/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/typename1/test.desc b/regression/cpp-from-CVS/typename1/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/typename1/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/typename2/test.desc b/regression/cpp-from-CVS/typename2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/typename2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/virtual10/test.desc b/regression/cpp-from-CVS/virtual10/test.desc deleted file mode 100644 index 7ed391809e9..00000000000 --- a/regression/cpp-from-CVS/virtual10/test.desc +++ /dev/null @@ -1,7 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- diff --git a/regression/cpp-from-CVS/virtual2/test.desc b/regression/cpp-from-CVS/virtual2/test.desc deleted file mode 100644 index 91d9cf8b52e..00000000000 --- a/regression/cpp-from-CVS/virtual2/test.desc +++ /dev/null @@ -1,8 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- -^warning: ignoring diff --git a/regression/cpp-from-CVS/virtual9/test.desc b/regression/cpp-from-CVS/virtual9/test.desc deleted file mode 100644 index 7ed391809e9..00000000000 --- a/regression/cpp-from-CVS/virtual9/test.desc +++ /dev/null @@ -1,7 +0,0 @@ -CORE -main.cpp - -^EXIT=0$ -^SIGNAL=0$ -^VERIFICATION SUCCESSFUL$ --- diff --git a/regression/cpp-from-CVS/Address_of_Method4/main.cpp b/regression/cpp/Address_of_Method4/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Address_of_Method4/main.cpp rename to regression/cpp/Address_of_Method4/main.cpp diff --git a/regression/cpp/Address_of_Method4/test.desc b/regression/cpp/Address_of_Method4/test.desc new file mode 100644 index 00000000000..8cd7c4ac778 --- /dev/null +++ b/regression/cpp/Address_of_Method4/test.desc @@ -0,0 +1,7 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +-- +^warning: ignoring diff --git a/regression/cpp-from-CVS/Protection1/main.cpp b/regression/cpp/Protection1/main.cpp similarity index 66% rename from regression/cpp-from-CVS/Protection1/main.cpp rename to regression/cpp/Protection1/main.cpp index 5b0131782dc..62a47be4651 100644 --- a/regression/cpp-from-CVS/Protection1/main.cpp +++ b/regression/cpp/Protection1/main.cpp @@ -9,3 +9,8 @@ class A class B: A { }; + +int main(int argc, char *argv[]) +{ + B b; +} diff --git a/regression/cpp-from-CVS/static_cast2/test.desc b/regression/cpp/Protection1/test.desc similarity index 88% rename from regression/cpp-from-CVS/static_cast2/test.desc rename to regression/cpp/Protection1/test.desc index 8022cf7f3a5..9f81962671b 100644 --- a/regression/cpp-from-CVS/static_cast2/test.desc +++ b/regression/cpp/Protection1/test.desc @@ -1,4 +1,4 @@ -CORE +KNOWNBUG main.cpp ^EXIT=6$ diff --git a/regression/cpp-from-CVS/Templates15/main.cpp b/regression/cpp/Templates15/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates15/main.cpp rename to regression/cpp/Templates15/main.cpp diff --git a/regression/cpp-from-CVS/static_cast4/test.desc b/regression/cpp/Templates15/test.desc similarity index 88% rename from regression/cpp-from-CVS/static_cast4/test.desc rename to regression/cpp/Templates15/test.desc index 8022cf7f3a5..9f81962671b 100644 --- a/regression/cpp-from-CVS/static_cast4/test.desc +++ b/regression/cpp/Templates15/test.desc @@ -1,4 +1,4 @@ -CORE +KNOWNBUG main.cpp ^EXIT=6$ diff --git a/regression/cpp-from-CVS/Templates33/main.cpp b/regression/cpp/Templates33/main.cpp similarity index 100% rename from regression/cpp-from-CVS/Templates33/main.cpp rename to regression/cpp/Templates33/main.cpp diff --git a/regression/cpp/Templates33/test.desc b/regression/cpp/Templates33/test.desc new file mode 100644 index 00000000000..8cd7c4ac778 --- /dev/null +++ b/regression/cpp/Templates33/test.desc @@ -0,0 +1,7 @@ +KNOWNBUG +main.cpp + +^EXIT=0$ +^SIGNAL=0$ +-- +^warning: ignoring From c1d5a1cc45761c3290b3d07dbf2d02b6ebdc286f Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Wed, 17 Mar 2021 20:24:15 +0000 Subject: [PATCH 08/25] clang-format recently moved tests --- .../cbmc-cpp/Address_of_Method1/main.cpp | 4 +- .../cbmc-cpp/Anonymous_members1/main.cpp | 28 ++++--- regression/cbmc-cpp/Array1/main.cpp | 10 +-- regression/cbmc-cpp/Array2/main.cpp | 10 +-- regression/cbmc-cpp/Array3/main.cpp | 6 +- regression/cbmc-cpp/Array4/elsewhere.cpp | 2 +- regression/cbmc-cpp/Array4/main.cpp | 2 +- regression/cbmc-cpp/Assignment1/main.cpp | 10 ++- regression/cbmc-cpp/Class_Members1/main.cpp | 10 +-- regression/cbmc-cpp/Comma_Operator1/main.cpp | 10 +-- .../cbmc-cpp/ConditionalExpression1/main.cpp | 14 ++-- .../cbmc-cpp/ConditionalExpression2/main.cpp | 2 +- regression/cbmc-cpp/Constant5/main.cpp | 4 +- regression/cbmc-cpp/Constructor1/main.cpp | 21 +++-- regression/cbmc-cpp/Constructor10/main.cpp | 11 ++- regression/cbmc-cpp/Constructor12/main.cpp | 25 ++++-- regression/cbmc-cpp/Constructor13/main.cpp | 46 +++++++---- regression/cbmc-cpp/Constructor14/main.cpp | 7 +- regression/cbmc-cpp/Constructor15/main.cpp | 12 +-- regression/cbmc-cpp/Constructor16/main.cpp | 9 +- regression/cbmc-cpp/Constructor17/main.cpp | 20 +++-- regression/cbmc-cpp/Constructor2/main.cpp | 8 +- regression/cbmc-cpp/Constructor3/main.cpp | 10 ++- regression/cbmc-cpp/Constructor4/main.cpp | 4 +- regression/cbmc-cpp/Constructor5/main.cpp | 9 +- regression/cbmc-cpp/Constructor6/main.cpp | 10 +-- regression/cbmc-cpp/Constructor9/main.cpp | 18 ++-- regression/cbmc-cpp/Conversion1/main.cpp | 10 +-- regression/cbmc-cpp/Conversion10/main.cpp | 15 +++- regression/cbmc-cpp/Conversion11/main.cpp | 5 +- regression/cbmc-cpp/Conversion3/main.cpp | 2 +- regression/cbmc-cpp/Conversion5/main.cpp | 2 +- regression/cbmc-cpp/Conversion6/main.cpp | 9 +- regression/cbmc-cpp/Conversion7/main.cpp | 10 ++- regression/cbmc-cpp/Conversion8/main.cpp | 9 +- regression/cbmc-cpp/Conversion9/main.cpp | 4 +- .../cbmc-cpp/Conversion_Operator1/main.cpp | 49 ++++++----- .../cbmc-cpp/Conversion_Operator2/main.cpp | 18 ++-- .../cbmc-cpp/Conversion_Operator3/main.cpp | 12 +-- .../cbmc-cpp/Conversion_Operator4/main.cpp | 6 +- .../cbmc-cpp/Conversion_Operator5/main.cpp | 13 +-- .../cbmc-cpp/Copy_Constructor1/main.cpp | 26 ++++-- .../cbmc-cpp/Copy_Constructor2/main.cpp | 20 +++-- .../cbmc-cpp/Copy_Constructor3/main.cpp | 12 ++- .../cbmc-cpp/Copy_Constructor5/main.cpp | 10 ++- regression/cbmc-cpp/Copy_Operator1/main.cpp | 17 ++-- regression/cbmc-cpp/Copy_Operator2/main.cpp | 6 +- .../cbmc-cpp/Default_Arguments1/main.cpp | 18 ++-- .../cbmc-cpp/Default_Arguments2/main.cpp | 5 +- regression/cbmc-cpp/Destructor1/main.cpp | 16 ++-- regression/cbmc-cpp/Destructor2/main.cpp | 17 ++-- regression/cbmc-cpp/Destructor3/main.cpp | 9 +- regression/cbmc-cpp/Destructor4/main.cpp | 6 +- regression/cbmc-cpp/Destructor5/main.cpp | 2 +- .../Destructor_with_PtrMember/main.cpp | 17 ++-- regression/cbmc-cpp/Exception1/main.cpp | 10 ++- regression/cbmc-cpp/Float1/main.cpp | 6 +- regression/cbmc-cpp/Friend1/main.cpp | 8 +- regression/cbmc-cpp/Friend3/main.cpp | 20 +++-- regression/cbmc-cpp/Friend4/main.cpp | 16 ++-- regression/cbmc-cpp/Friend5/main.cpp | 12 +-- regression/cbmc-cpp/Friend6/main.cpp | 24 ++++-- .../cbmc-cpp/Function_Arguments1/main.cpp | 2 +- .../cbmc-cpp/Function_Arguments2/main.cpp | 15 ++-- .../cbmc-cpp/Function_Arguments3/main.cpp | 12 +-- .../cbmc-cpp/Function_Arguments4/main.cpp | 16 ++-- .../cbmc-cpp/Function_Arguments5/main.cpp | 12 ++- .../cbmc-cpp/Function_Pointer1/main.cpp | 4 +- .../cbmc-cpp/Implicit_Conversion1/main.cpp | 5 +- .../cbmc-cpp/Implicit_Conversion2/main.cpp | 8 +- .../cbmc-cpp/Implicit_Conversion3/main.cpp | 22 +++-- .../cbmc-cpp/Implicit_Conversion4/main.cpp | 82 ++++++++++--------- .../cbmc-cpp/Implicit_Conversion5/main.cpp | 2 +- .../cbmc-cpp/Implicit_Conversion6/main.cpp | 10 ++- .../cbmc-cpp/Implicit_Conversion8/main.cpp | 42 +++++----- .../cbmc-cpp/Implicit_Conversion9/main.cpp | 15 ++-- regression/cbmc-cpp/Inheritance1/main.cpp | 6 +- regression/cbmc-cpp/Inheritance2/main.cpp | 6 +- regression/cbmc-cpp/Inheritance3/main.cpp | 7 +- regression/cbmc-cpp/Inheritance4/main.cpp | 16 ++-- regression/cbmc-cpp/Initializer1/main.cpp | 8 +- regression/cbmc-cpp/Label0/main.cpp | 2 +- regression/cbmc-cpp/Linking1/main.cpp | 6 +- regression/cbmc-cpp/Linking1/module.cpp | 4 +- regression/cbmc-cpp/Linking2/test_link1.cpp | 4 +- regression/cbmc-cpp/Lvalue1/main.cpp | 16 ++-- .../cbmc-cpp/Member_Access_in_Class/main.cpp | 12 ++- .../cbmc-cpp/Multiple_Inheritance1/main.cpp | 14 ++-- .../cbmc-cpp/Multiple_Inheritance2/main.cpp | 15 +++- .../cbmc-cpp/Multiple_Inheritance3/main.cpp | 17 +++- .../cbmc-cpp/Multiple_Inheritance4/main.cpp | 41 ++++++---- regression/cbmc-cpp/Mutable1/main.cpp | 2 +- .../cbmc-cpp/Overloading_Functions1/main.cpp | 39 ++++++--- .../cbmc-cpp/Overloading_Functions2/main.cpp | 21 +++-- .../cbmc-cpp/Overloading_Functions3/main.cpp | 20 ++--- .../cbmc-cpp/Overloading_Functions4/main.cpp | 2 +- .../cbmc-cpp/Overloading_Increment1/main.cpp | 12 +-- .../cbmc-cpp/Overloading_Members1/main.cpp | 4 +- .../cbmc-cpp/Overloading_Operators1/main.cpp | 8 +- .../cbmc-cpp/Overloading_Operators10/main.cpp | 15 +++- .../cbmc-cpp/Overloading_Operators11/main.cpp | 27 ++++-- .../cbmc-cpp/Overloading_Operators12/main.cpp | 15 +++- .../cbmc-cpp/Overloading_Operators13/main.cpp | 23 ++++-- .../cbmc-cpp/Overloading_Operators14/main.cpp | 12 ++- .../cbmc-cpp/Overloading_Operators16/main.cpp | 33 ++++---- .../cbmc-cpp/Overloading_Operators2/main.cpp | 14 ++-- .../cbmc-cpp/Overloading_Operators4/main.cpp | 9 +- .../cbmc-cpp/Overloading_Operators5/main.cpp | 12 +-- .../cbmc-cpp/Overloading_Operators6/main.cpp | 31 +++++-- .../cbmc-cpp/Overloading_Operators7/main.cpp | 12 +-- .../cbmc-cpp/Overloading_Operators8/main.cpp | 15 ++-- .../cbmc-cpp/Overloading_Operators9/main.cpp | 6 +- .../cbmc-cpp/Pointer_Conversion2/main.cpp | 2 +- .../cbmc-cpp/Pointer_Conversion3/main.cpp | 10 +-- .../cbmc-cpp/Pointer_To_Member1/main.cpp | 9 +- .../cbmc-cpp/Pointer_To_Member2/main.cpp | 7 +- .../cbmc-cpp/Pointer_To_Member3/main.cpp | 10 ++- .../cbmc-cpp/Pointer_To_Member4/main.cpp | 9 +- .../cbmc-cpp/Pointer_To_Member5/main.cpp | 18 ++-- .../cbmc-cpp/Pointer_To_Member6/main.cpp | 12 +-- regression/cbmc-cpp/Protection2/main.cpp | 18 ++-- regression/cbmc-cpp/Protection3/main.cpp | 7 +- regression/cbmc-cpp/Protection4/main.cpp | 16 ++-- regression/cbmc-cpp/Protection5/main.cpp | 7 +- regression/cbmc-cpp/Protection6/main.cpp | 7 +- regression/cbmc-cpp/Protection7/main.cpp | 14 ++-- regression/cbmc-cpp/Protection8/main.cpp | 20 +++-- regression/cbmc-cpp/Qualifier1/main.cpp | 6 +- regression/cbmc-cpp/Qualifier2/main.cpp | 3 +- regression/cbmc-cpp/Qualifier4/main.cpp | 2 +- regression/cbmc-cpp/Reference1/main.cpp | 12 +-- regression/cbmc-cpp/Reference2/main.cpp | 16 ++-- regression/cbmc-cpp/Reference3/main.cpp | 19 +++-- regression/cbmc-cpp/Reference4/main.cpp | 5 +- regression/cbmc-cpp/Reference5/main.cpp | 6 +- regression/cbmc-cpp/Reference6/main.cpp | 8 +- regression/cbmc-cpp/Reference7/main.cpp | 8 +- regression/cbmc-cpp/Reference8/main.cpp | 2 +- regression/cbmc-cpp/Resolver13/main.cpp | 22 +++-- regression/cbmc-cpp/Resolver5/main.cpp | 12 ++- regression/cbmc-cpp/Resolver7/main.cpp | 12 ++- regression/cbmc-cpp/Resolver8/main.cpp | 7 +- regression/cbmc-cpp/Resolver9/main.cpp | 4 +- regression/cbmc-cpp/STL1/main.cpp | 30 ++++--- regression/cbmc-cpp/STL2/main.cpp | 3 +- regression/cbmc-cpp/Static_Member1/main.cpp | 10 +-- .../cbmc-cpp/Static_Member_Function/main.cpp | 4 +- regression/cbmc-cpp/Static_Method1/main.cpp | 10 ++- regression/cbmc-cpp/String_Literal1/main.cpp | 6 +- regression/cbmc-cpp/Templates1/main.cpp | 2 +- regression/cbmc-cpp/Templates10/main.cpp | 2 +- regression/cbmc-cpp/Templates11/main.cpp | 13 ++- regression/cbmc-cpp/Templates12/main.cpp | 4 +- regression/cbmc-cpp/Templates13/main.cpp | 6 +- regression/cbmc-cpp/Templates14/main.cpp | 16 ++-- regression/cbmc-cpp/Templates16/main.cpp | 4 +- regression/cbmc-cpp/Templates17/main.cpp | 10 ++- regression/cbmc-cpp/Templates18/main.cpp | 11 +-- regression/cbmc-cpp/Templates19/main.cpp | 6 +- regression/cbmc-cpp/Templates20/main.cpp | 52 +++++++----- regression/cbmc-cpp/Templates21/main.cpp | 10 ++- regression/cbmc-cpp/Templates22/main.cpp | 14 +++- regression/cbmc-cpp/Templates23/main.cpp | 2 +- regression/cbmc-cpp/Templates24/main.cpp | 8 +- regression/cbmc-cpp/Templates25/main.cpp | 5 +- regression/cbmc-cpp/Templates26/main.cpp | 7 +- regression/cbmc-cpp/Templates27/main.cpp | 7 +- regression/cbmc-cpp/Templates28/main.cpp | 7 +- regression/cbmc-cpp/Templates29/main.cpp | 17 ++-- regression/cbmc-cpp/Templates3/main.cpp | 4 +- regression/cbmc-cpp/Templates30/main.cpp | 6 +- regression/cbmc-cpp/Templates31/main.cpp | 6 +- regression/cbmc-cpp/Templates32/main.cpp | 16 ++-- regression/cbmc-cpp/Templates34/main.cpp | 8 +- regression/cbmc-cpp/Templates35/main.cpp | 27 ++++-- regression/cbmc-cpp/Templates4/main.cpp | 17 ++-- regression/cbmc-cpp/Templates5/main.cpp | 14 ++-- regression/cbmc-cpp/Templates6/main.cpp | 25 ++++-- regression/cbmc-cpp/Templates8/main.cpp | 7 +- regression/cbmc-cpp/Templates9/main.cpp | 15 ++-- regression/cbmc-cpp/Temporary1/main.cpp | 2 +- regression/cbmc-cpp/Temporary2/main.cpp | 4 +- regression/cbmc-cpp/Typecast1/main.cpp | 2 +- regression/cbmc-cpp/Typecast2/main.cpp | 2 +- regression/cbmc-cpp/Typedef1/main.cpp | 17 ++-- regression/cbmc-cpp/Typedef2/main.cpp | 6 +- regression/cbmc-cpp/Typedef3/main.cpp | 5 +- regression/cbmc-cpp/Vector1/main.cpp | 4 +- .../cbmc-cpp/Zero_Initializer1/main.cpp | 13 +-- regression/cbmc-cpp/argv1/main.cpp | 7 +- regression/cbmc-cpp/const_cast1/main.cpp | 10 +-- regression/cbmc-cpp/extractbits1/main.cpp | 8 +- regression/cbmc-cpp/for1/main.cpp | 5 +- regression/cbmc-cpp/initialization1/main.cpp | 15 ++-- regression/cbmc-cpp/initialization2/main.cpp | 15 ++-- regression/cbmc-cpp/initialization3/main.cpp | 8 +- regression/cbmc-cpp/initialization4/main.cpp | 4 +- regression/cbmc-cpp/initialization5/main.cpp | 3 +- regression/cbmc-cpp/initialization6/main.cpp | 2 +- regression/cbmc-cpp/namespace1/main.cpp | 23 +++--- regression/cbmc-cpp/namespace2/main.cpp | 14 ++-- regression/cbmc-cpp/namespace3/main.cpp | 9 +- regression/cbmc-cpp/new1/main.cpp | 8 +- regression/cbmc-cpp/operators/main.cpp | 51 ++++++++---- .../cbmc-cpp/reinterpret_cast1/main.cpp | 4 +- .../cbmc-cpp/reinterpret_cast2/main.cpp | 11 ++- regression/cbmc-cpp/static_cast1/main.cpp | 6 +- regression/cbmc-cpp/static_cast3/main.cpp | 19 +++-- regression/cbmc-cpp/static_cast4/main.cpp | 14 +++- regression/cbmc-cpp/static_cast5/main.cpp | 14 ++-- regression/cbmc-cpp/struct1/main.cpp | 14 ++-- .../cbmc-cpp/typecast_ambiguity3/main.cpp | 2 +- regression/cbmc-cpp/typename1/main.cpp | 6 +- regression/cbmc-cpp/typename2/main.cpp | 15 ++-- regression/cbmc-cpp/union1/main.cpp | 3 +- regression/cbmc-cpp/virtual1/main.cpp | 16 ++-- regression/cbmc-cpp/virtual10/main.cpp | 14 +++- regression/cbmc-cpp/virtual11/main.cpp | 9 +- regression/cbmc-cpp/virtual12/main.cpp | 30 +++++-- regression/cbmc-cpp/virtual13/main.cpp | 29 +++++-- regression/cbmc-cpp/virtual14/main.cpp | 32 ++++---- regression/cbmc-cpp/virtual15/main.cpp | 39 +++++---- regression/cbmc-cpp/virtual2/main.cpp | 8 +- regression/cbmc-cpp/virtual3/main.cpp | 17 ++-- regression/cbmc-cpp/virtual4/main.cpp | 16 ++-- regression/cbmc-cpp/virtual5/main.cpp | 18 ++-- regression/cbmc-cpp/virtual6/main.cpp | 14 ++-- regression/cbmc-cpp/virtual7/main.cpp | 18 ++-- regression/cbmc-cpp/virtual8/main.cpp | 22 +++-- regression/cbmc-cpp/virtual9/main.cpp | 7 +- regression/cpp/Address_of_Method4/main.cpp | 9 +- regression/cpp/Protection1/main.cpp | 9 +- regression/cpp/Templates15/main.cpp | 3 +- regression/cpp/Templates33/main.cpp | 2 +- 234 files changed, 1774 insertions(+), 1120 deletions(-) diff --git a/regression/cbmc-cpp/Address_of_Method1/main.cpp b/regression/cbmc-cpp/Address_of_Method1/main.cpp index 1219581b3ff..cc6bdbe3878 100644 --- a/regression/cbmc-cpp/Address_of_Method1/main.cpp +++ b/regression/cbmc-cpp/Address_of_Method1/main.cpp @@ -12,7 +12,7 @@ void x::f() int main() { - assert(&x::f!=0); + assert(&x::f != 0); - assert(&x::i!=0); + assert(&x::i != 0); } diff --git a/regression/cbmc-cpp/Anonymous_members1/main.cpp b/regression/cbmc-cpp/Anonymous_members1/main.cpp index 3013fb944de..e34d0a3d680 100644 --- a/regression/cbmc-cpp/Anonymous_members1/main.cpp +++ b/regression/cbmc-cpp/Anonymous_members1/main.cpp @@ -4,24 +4,26 @@ typedef signed LONG; typedef long long LONGLONG; typedef union _LARGE_INTEGER { - struct { - DWORD LowPart; - LONG HighPart; - }; - struct { - DWORD LowPart; - LONG HighPart; - } u; + struct + { + DWORD LowPart; + LONG HighPart; + }; + struct + { + DWORD LowPart; + LONG HighPart; + } u; - LONGLONG QuadPart; + LONGLONG QuadPart; } LARGE_INTEGER; int main() { LARGE_INTEGER l; - l.QuadPart=1; - l.LowPart=2; - l.u.LowPart=3; - assert(l.LowPart==3); + l.QuadPart = 1; + l.LowPart = 2; + l.u.LowPart = 3; + assert(l.LowPart == 3); } diff --git a/regression/cbmc-cpp/Array1/main.cpp b/regression/cbmc-cpp/Array1/main.cpp index bf43cb7c52f..3ed620706cb 100644 --- a/regression/cbmc-cpp/Array1/main.cpp +++ b/regression/cbmc-cpp/Array1/main.cpp @@ -2,9 +2,9 @@ int y[5][4][3][2]; int main() { - for(int i=0; i<5; i++) - for(int j=0; j<4; j++) - for(int k=0; k<3; k++) - for(int l=0; l<2; l++) - y[i][j][k][l]=2; + for(int i = 0; i < 5; i++) + for(int j = 0; j < 4; j++) + for(int k = 0; k < 3; k++) + for(int l = 0; l < 2; l++) + y[i][j][k][l] = 2; } diff --git a/regression/cbmc-cpp/Array2/main.cpp b/regression/cbmc-cpp/Array2/main.cpp index a9910788ebb..8bc25491f92 100644 --- a/regression/cbmc-cpp/Array2/main.cpp +++ b/regression/cbmc-cpp/Array2/main.cpp @@ -2,9 +2,9 @@ int y[2][3][4][5]; int main() { - for(int i=0; i<5; i++) - for(int j=0; j<4; j++) - for(int k=0; k<3; k++) - for(int l=0; l<2; l++) - y[i][j][k][l]=2; // out-of-bounds + for(int i = 0; i < 5; i++) + for(int j = 0; j < 4; j++) + for(int k = 0; k < 3; k++) + for(int l = 0; l < 2; l++) + y[i][j][k][l] = 2; // out-of-bounds } diff --git a/regression/cbmc-cpp/Array3/main.cpp b/regression/cbmc-cpp/Array3/main.cpp index fa56e6fa264..9cb355190a8 100644 --- a/regression/cbmc-cpp/Array3/main.cpp +++ b/regression/cbmc-cpp/Array3/main.cpp @@ -1,11 +1,11 @@ struct C { - static const char * array[1]; + static const char *array[1]; }; -const char * C::array[1] = { "HELLO" }; +const char *C::array[1] = {"HELLO"}; -int main(int argc, const char* argv[]) +int main(int argc, const char *argv[]) { assert(*C::array[0] == 'H'); } diff --git a/regression/cbmc-cpp/Array4/elsewhere.cpp b/regression/cbmc-cpp/Array4/elsewhere.cpp index 883be4f34df..d3fe0fd689d 100644 --- a/regression/cbmc-cpp/Array4/elsewhere.cpp +++ b/regression/cbmc-cpp/Array4/elsewhere.cpp @@ -4,5 +4,5 @@ void elsewhere() { char ch; // should fail, this is out of bounds - ch=my_string[10]; + ch = my_string[10]; } diff --git a/regression/cbmc-cpp/Array4/main.cpp b/regression/cbmc-cpp/Array4/main.cpp index e5619c4e398..4da4be4641a 100644 --- a/regression/cbmc-cpp/Array4/main.cpp +++ b/regression/cbmc-cpp/Array4/main.cpp @@ -1,4 +1,4 @@ -char my_string[]="abc"; +char my_string[] = "abc"; void elsewhere(); diff --git a/regression/cbmc-cpp/Assignment1/main.cpp b/regression/cbmc-cpp/Assignment1/main.cpp index 78760e92e2f..3e9e3a57254 100644 --- a/regression/cbmc-cpp/Assignment1/main.cpp +++ b/regression/cbmc-cpp/Assignment1/main.cpp @@ -1,10 +1,13 @@ #include -struct A { int i;}; +struct A +{ + int i; +}; struct B { int i; - B& operator = (const B& b) + B &operator=(const B &b) { i = b.i; return *this; @@ -18,7 +21,6 @@ A funcA() return a; } - B funcB() { B b; @@ -34,5 +36,5 @@ int main() B b; b.i = 20; - assert((funcB() = b).i == 20); // legal + assert((funcB() = b).i == 20); // legal } diff --git a/regression/cbmc-cpp/Class_Members1/main.cpp b/regression/cbmc-cpp/Class_Members1/main.cpp index e877c105ef9..fc204b03937 100644 --- a/regression/cbmc-cpp/Class_Members1/main.cpp +++ b/regression/cbmc-cpp/Class_Members1/main.cpp @@ -5,25 +5,25 @@ class t int i; void f(); - void g(double xxx=3.2); + void g(double xxx = 3.2); }; void t::f() { - i=1; + i = 1; } void t::g(double d) { - i=(int)d; + i = (int)d; } int main() { t instance; instance.f(); - assert(instance.i==1); + assert(instance.i == 1); instance.g(2.1); - assert(instance.i==2); + assert(instance.i == 2); } diff --git a/regression/cbmc-cpp/Comma_Operator1/main.cpp b/regression/cbmc-cpp/Comma_Operator1/main.cpp index cc6c58302f0..46276d6c94a 100644 --- a/regression/cbmc-cpp/Comma_Operator1/main.cpp +++ b/regression/cbmc-cpp/Comma_Operator1/main.cpp @@ -1,9 +1,9 @@ #include int main() { - int s=0; - int t=0; - t=(s=3, s+2); - assert(s==3); - assert(t==5); + int s = 0; + int t = 0; + t = (s = 3, s + 2); + assert(s == 3); + assert(t == 5); } diff --git a/regression/cbmc-cpp/ConditionalExpression1/main.cpp b/regression/cbmc-cpp/ConditionalExpression1/main.cpp index a00db6f6993..65a01bcb16a 100644 --- a/regression/cbmc-cpp/ConditionalExpression1/main.cpp +++ b/regression/cbmc-cpp/ConditionalExpression1/main.cpp @@ -1,13 +1,13 @@ #include int main() { - bool b; - int a = 0; - int c = 0; + bool b; + int a = 0; + int c = 0; - b ? a += 1 : c +=1; + b ? a += 1 : c += 1; - assert(a == 1 || a == 0); - assert(c == 1 || c == 0); - assert( a != c); + assert(a == 1 || a == 0); + assert(c == 1 || c == 0); + assert(a != c); } diff --git a/regression/cbmc-cpp/ConditionalExpression2/main.cpp b/regression/cbmc-cpp/ConditionalExpression2/main.cpp index 9aceeebafb1..41e340cd142 100644 --- a/regression/cbmc-cpp/ConditionalExpression2/main.cpp +++ b/regression/cbmc-cpp/ConditionalExpression2/main.cpp @@ -4,7 +4,7 @@ char b[2]; int main() { - char* c = true ? a : b; + char *c = true ? a : b; assert(*c == a[0]); return 0; } diff --git a/regression/cbmc-cpp/Constant5/main.cpp b/regression/cbmc-cpp/Constant5/main.cpp index b481d0422a6..12a7f0a215e 100644 --- a/regression/cbmc-cpp/Constant5/main.cpp +++ b/regression/cbmc-cpp/Constant5/main.cpp @@ -1,9 +1,9 @@ -const int ASD1=1; +const int ASD1 = 1; int array[ASD1]; int main() { // this sound fail! - (int &)ASD1=2; + (int &)ASD1 = 2; } diff --git a/regression/cbmc-cpp/Constructor1/main.cpp b/regression/cbmc-cpp/Constructor1/main.cpp index 5c0f04501c7..bf4b39be428 100644 --- a/regression/cbmc-cpp/Constructor1/main.cpp +++ b/regression/cbmc-cpp/Constructor1/main.cpp @@ -4,7 +4,10 @@ class t1 public: int i; - t1() { i=1; } + t1() + { + i = 1; + } }; class t2 @@ -12,7 +15,9 @@ class t2 public: int i; - t2():i(2) { } + t2() : i(2) + { + } }; class t3 @@ -23,22 +28,22 @@ class t3 t3(); }; -t3::t3():i(3) +t3::t3() : i(3) { } int main() { t1 instance1; - assert(instance1.i==1); + assert(instance1.i == 1); t2 instance2; - assert(instance2.i==2); + assert(instance2.i == 2); - t2 *p=new t2; - assert(p->i==2); + t2 *p = new t2; + assert(p->i == 2); delete p; t3 instance3; - assert(instance3.i==3); + assert(instance3.i == 3); } diff --git a/regression/cbmc-cpp/Constructor10/main.cpp b/regression/cbmc-cpp/Constructor10/main.cpp index efd4869d97e..2a19ea69dcb 100644 --- a/regression/cbmc-cpp/Constructor10/main.cpp +++ b/regression/cbmc-cpp/Constructor10/main.cpp @@ -1,14 +1,17 @@ class A { - public: +public: int a; - A(int a):a(a){} + A(int a) : a(a) + { + } }; - A f() { return A(0); } -int main() {} +int main() +{ +} diff --git a/regression/cbmc-cpp/Constructor12/main.cpp b/regression/cbmc-cpp/Constructor12/main.cpp index fec097a8de0..6ab09e8449f 100644 --- a/regression/cbmc-cpp/Constructor12/main.cpp +++ b/regression/cbmc-cpp/Constructor12/main.cpp @@ -2,18 +2,25 @@ struct A { int i; - A():i(10) {} - private: - A(const A& a); // disabled + A() : i(10) + { + } + +private: + A(const A &a); // disabled }; +class B : A +{ +public: + B(){}; + int get_i() + { + return i; + } -class B: A { - public: - B(){}; - int get_i() {return i;} - private: - B(B& b); // disabled +private: + B(B &b); // disabled }; int main() diff --git a/regression/cbmc-cpp/Constructor13/main.cpp b/regression/cbmc-cpp/Constructor13/main.cpp index 8694b21b0ad..efd17d5371e 100644 --- a/regression/cbmc-cpp/Constructor13/main.cpp +++ b/regression/cbmc-cpp/Constructor13/main.cpp @@ -1,36 +1,52 @@ #include int g; -class A { - public: - A(int i){g=i;}; - private: +class A +{ +public: + A(int i) + { + g = i; + }; + +private: A(); }; -class B: A { - public: +class B : A +{ +public: typedef A base_type; typedef B this_type; - B():base_type(10) {} - B(const this_type& b): A(20) {g++;} + B() : base_type(10) + { + } + B(const this_type &b) : A(20) + { + g++; + } }; -class C: B +class C : B { typedef B base_type; typedef C this_type; - public: - C(): base_type() {} - C(const base_type& b): base_type(b){g++;} -}; +public: + C() : base_type() + { + } + C(const base_type &b) : base_type(b) + { + g++; + } +}; C c; int main() { - assert(g==10); + assert(g == 10); B b; C c2 = b; - assert(g==22); + assert(g == 22); } diff --git a/regression/cbmc-cpp/Constructor14/main.cpp b/regression/cbmc-cpp/Constructor14/main.cpp index 15c4afaef68..f56521f21c8 100644 --- a/regression/cbmc-cpp/Constructor14/main.cpp +++ b/regression/cbmc-cpp/Constructor14/main.cpp @@ -1,18 +1,19 @@ struct A { - A(int i):i(i) {} + A(int i) : i(i) + { + } int i; }; A a(1); - A b = 1; int main() { A c(1); - A d=1; + A d = 1; assert(a.i == 1); assert(b.i == 1); assert(c.i == 1); diff --git a/regression/cbmc-cpp/Constructor15/main.cpp b/regression/cbmc-cpp/Constructor15/main.cpp index c6e7dc4f3f6..718b87ee287 100644 --- a/regression/cbmc-cpp/Constructor15/main.cpp +++ b/regression/cbmc-cpp/Constructor15/main.cpp @@ -1,17 +1,17 @@ class A { - public: +public: A(){}; - private: - A(const A&); // disabled - A& operator=(const A&); // disabled + +private: + A(const A &); // disabled + A &operator=(const A &); // disabled }; -class B: public A +class B : public A { }; - int main() { B b; // ok diff --git a/regression/cbmc-cpp/Constructor16/main.cpp b/regression/cbmc-cpp/Constructor16/main.cpp index 75e996d8be2..4cb8d495b92 100644 --- a/regression/cbmc-cpp/Constructor16/main.cpp +++ b/regression/cbmc-cpp/Constructor16/main.cpp @@ -4,17 +4,16 @@ class A A(){}; private: - A(const A&); // disabled - A& operator=(const A&); // disabled + A(const A &); // disabled + A &operator=(const A &); // disabled }; -class B: public A +class B : public A { }; - int main() { B b1, b2; - b1 = b2; // not ok + b1 = b2; // not ok } diff --git a/regression/cbmc-cpp/Constructor17/main.cpp b/regression/cbmc-cpp/Constructor17/main.cpp index abcec93d2c1..2261a107b01 100644 --- a/regression/cbmc-cpp/Constructor17/main.cpp +++ b/regression/cbmc-cpp/Constructor17/main.cpp @@ -1,8 +1,10 @@ class C { - public: - C(int& v):v(v) {} - int v; +public: + C(int &v) : v(v) + { + } + int v; }; struct D @@ -10,15 +12,15 @@ struct D int r; }; -int main(int argc, char* argv[]) +int main(int argc, char *argv[]) { - int i=10; - int& ref = i; - C* pc = new C((char&)ref); + int i = 10; + int &ref = i; + C *pc = new C((char &)ref); assert(pc->v == 10); D d; d.r = 10; - D& ref_d = d; - D* pd = new D(ref_d); + D &ref_d = d; + D *pd = new D(ref_d); assert(pd->r == 10); } diff --git a/regression/cbmc-cpp/Constructor2/main.cpp b/regression/cbmc-cpp/Constructor2/main.cpp index b38e44ca8f2..f3509762af2 100644 --- a/regression/cbmc-cpp/Constructor2/main.cpp +++ b/regression/cbmc-cpp/Constructor2/main.cpp @@ -8,13 +8,13 @@ class t1 t1(int z); }; -t1::t1():i(1) +t1::t1() : i(1) { } t1::t1(int z) { - i=z; + i = z; } class t2 @@ -26,7 +26,7 @@ class t2 t2(int z); }; -t2::t2():i(1) +t2::t2() : i(1) { } @@ -37,5 +37,5 @@ t2::t2(int z) int main() { t1 instance1(5); - assert(instance1.i==5); + assert(instance1.i == 5); } diff --git a/regression/cbmc-cpp/Constructor3/main.cpp b/regression/cbmc-cpp/Constructor3/main.cpp index 90719ef9acb..3d8d583fb7e 100644 --- a/regression/cbmc-cpp/Constructor3/main.cpp +++ b/regression/cbmc-cpp/Constructor3/main.cpp @@ -7,11 +7,15 @@ class x int i; }; -x::x():i(1) { } -x::x(int z):i(z) { } +x::x() : i(1) +{ +} +x::x(int z) : i(z) +{ +} int main() { x a(5); - assert(a.i==5); + assert(a.i == 5); } diff --git a/regression/cbmc-cpp/Constructor4/main.cpp b/regression/cbmc-cpp/Constructor4/main.cpp index fa50e22d115..5fbc797c632 100644 --- a/regression/cbmc-cpp/Constructor4/main.cpp +++ b/regression/cbmc-cpp/Constructor4/main.cpp @@ -6,12 +6,12 @@ struct x x(); }; -x::x():q(0) +x::x() : q(0) { } int main() { x a; - assert(a.q==0); + assert(a.q == 0); } diff --git a/regression/cbmc-cpp/Constructor5/main.cpp b/regression/cbmc-cpp/Constructor5/main.cpp index b335b2dc8dd..d8f659e95fe 100644 --- a/regression/cbmc-cpp/Constructor5/main.cpp +++ b/regression/cbmc-cpp/Constructor5/main.cpp @@ -7,15 +7,18 @@ class x public: x(); - int get_i() { return i; } + int get_i() + { + return i; + } }; -x::x():i(1) +x::x() : i(1) { } int main() { x a; - assert(a.get_i()==1); + assert(a.get_i() == 1); } diff --git a/regression/cbmc-cpp/Constructor6/main.cpp b/regression/cbmc-cpp/Constructor6/main.cpp index 382bd0a5b3b..6061e542a37 100644 --- a/regression/cbmc-cpp/Constructor6/main.cpp +++ b/regression/cbmc-cpp/Constructor6/main.cpp @@ -1,5 +1,5 @@ #include -int counter=1; +int counter = 1; struct T { @@ -10,7 +10,7 @@ struct T T::T() { - z=counter; + z = counter; counter++; } @@ -18,7 +18,7 @@ T a, b; int main() { - assert(counter==3); - assert(a.z==1); - assert(b.z==2); + assert(counter == 3); + assert(a.z == 1); + assert(b.z == 2); } diff --git a/regression/cbmc-cpp/Constructor9/main.cpp b/regression/cbmc-cpp/Constructor9/main.cpp index fc0cebada20..d0615869165 100644 --- a/regression/cbmc-cpp/Constructor9/main.cpp +++ b/regression/cbmc-cpp/Constructor9/main.cpp @@ -5,7 +5,7 @@ class B public: int i; - B():i(1) + B() : i(1) { } }; @@ -14,23 +14,25 @@ class A { public: B b_array[2]; - A() {} + A() + { + } }; B static_b_array[2]; int main() { - assert(static_b_array[0].i==1); - assert(static_b_array[1].i==1); + assert(static_b_array[0].i == 1); + assert(static_b_array[1].i == 1); A a; - assert(a.b_array[0].i==1); - assert(a.b_array[1].i==1); + assert(a.b_array[0].i == 1); + assert(a.b_array[1].i == 1); B b_array[2]; - assert(b_array[0].i==1); - assert(b_array[1].i==1); + assert(b_array[0].i == 1); + assert(b_array[1].i == 1); } diff --git a/regression/cbmc-cpp/Conversion1/main.cpp b/regression/cbmc-cpp/Conversion1/main.cpp index 586182a19c6..f3f9f2b033d 100644 --- a/regression/cbmc-cpp/Conversion1/main.cpp +++ b/regression/cbmc-cpp/Conversion1/main.cpp @@ -1,11 +1,11 @@ class T { public: - T():x(0) + T() : x(0) { } - T(int i, int j):x(i) + T(int i, int j) : x(i) { } @@ -15,10 +15,10 @@ class T int main() { // alternate forms of conversion - assert(unsigned(-1)==(unsigned)-1); + assert(unsigned(-1) == (unsigned)-1); assert(bool(10)); - T t=T(2, 3); - assert(t.x==2); + T t = T(2, 3); + assert(t.x == 2); } diff --git a/regression/cbmc-cpp/Conversion10/main.cpp b/regression/cbmc-cpp/Conversion10/main.cpp index 90acac074fc..0d6561a7bbb 100644 --- a/regression/cbmc-cpp/Conversion10/main.cpp +++ b/regression/cbmc-cpp/Conversion10/main.cpp @@ -1,10 +1,17 @@ -struct A {}; +struct A +{ +}; -struct B { - explicit B(A&){} +struct B +{ + explicit B(A &) + { + } }; -void test(const B& b) {} +void test(const B &b) +{ +} int main() { diff --git a/regression/cbmc-cpp/Conversion11/main.cpp b/regression/cbmc-cpp/Conversion11/main.cpp index 09a4d27798d..938a4bb2c84 100644 --- a/regression/cbmc-cpp/Conversion11/main.cpp +++ b/regression/cbmc-cpp/Conversion11/main.cpp @@ -1 +1,4 @@ -char* func() {return (void*)0; } +char *func() +{ + return (void *)0; +} diff --git a/regression/cbmc-cpp/Conversion3/main.cpp b/regression/cbmc-cpp/Conversion3/main.cpp index 48274d054b7..bab1f803c83 100644 --- a/regression/cbmc-cpp/Conversion3/main.cpp +++ b/regression/cbmc-cpp/Conversion3/main.cpp @@ -1,6 +1,6 @@ int main() { char c = 'c'; - int& i = c; // ill-formed + int &i = c; // ill-formed i++; } diff --git a/regression/cbmc-cpp/Conversion5/main.cpp b/regression/cbmc-cpp/Conversion5/main.cpp index f0d8e927b8f..70b14541a44 100644 --- a/regression/cbmc-cpp/Conversion5/main.cpp +++ b/regression/cbmc-cpp/Conversion5/main.cpp @@ -4,5 +4,5 @@ int main() unsigned i = 1; unsigned j; j = i + 1; - assert(j==2); + assert(j == 2); } diff --git a/regression/cbmc-cpp/Conversion6/main.cpp b/regression/cbmc-cpp/Conversion6/main.cpp index 9753d04b383..51b52a1398d 100644 --- a/regression/cbmc-cpp/Conversion6/main.cpp +++ b/regression/cbmc-cpp/Conversion6/main.cpp @@ -4,7 +4,8 @@ struct A int i; }; -struct B: public A { +struct B : public A +{ int j; }; @@ -18,9 +19,9 @@ int main() B b; b.i = 1; - assert((* ((A*)&b)).i == 1); // This works fine. + assert((*((A *)&b)).i == 1); // This works fine. - int bi = func( * ((A*)&b)); // Satabs Ok. - // cbmc error + int bi = func(*((A *)&b)); // Satabs Ok. + // cbmc error assert(bi == 1); } diff --git a/regression/cbmc-cpp/Conversion7/main.cpp b/regression/cbmc-cpp/Conversion7/main.cpp index f16cdcbab03..943443985d4 100644 --- a/regression/cbmc-cpp/Conversion7/main.cpp +++ b/regression/cbmc-cpp/Conversion7/main.cpp @@ -1,15 +1,17 @@ -struct A{ +struct A +{ int i; }; -struct B: public A{ +struct B : public A +{ }; int main() { B b; - b.i=4; + b.i = 4; A(b).i++; // Not a lvalue? - assert(b.i==4); + assert(b.i == 4); } diff --git a/regression/cbmc-cpp/Conversion8/main.cpp b/regression/cbmc-cpp/Conversion8/main.cpp index 2ae6dca55d8..7c49c3b1fe9 100644 --- a/regression/cbmc-cpp/Conversion8/main.cpp +++ b/regression/cbmc-cpp/Conversion8/main.cpp @@ -1,8 +1,9 @@ -int main() { +int main() +{ const char c[1] = {'c'}; - char* pc; - const char** pcc = &pc; // 1: not allowed + char *pc; + const char **pcc = &pc; // 1: not allowed *pcc = &c; *pc = 'C'; // 2: modifies a const object - assert(c[0]=='c'); + assert(c[0] == 'c'); } diff --git a/regression/cbmc-cpp/Conversion9/main.cpp b/regression/cbmc-cpp/Conversion9/main.cpp index f59a75fbe89..9455bdb8367 100644 --- a/regression/cbmc-cpp/Conversion9/main.cpp +++ b/regression/cbmc-cpp/Conversion9/main.cpp @@ -2,7 +2,9 @@ struct A { }; -struct B: A {}; +struct B : A +{ +}; int main() { diff --git a/regression/cbmc-cpp/Conversion_Operator1/main.cpp b/regression/cbmc-cpp/Conversion_Operator1/main.cpp index 8515bf5de2e..a2fb0936289 100644 --- a/regression/cbmc-cpp/Conversion_Operator1/main.cpp +++ b/regression/cbmc-cpp/Conversion_Operator1/main.cpp @@ -1,33 +1,40 @@ -struct Char { +struct Char +{ char c; - Char(char c):c(c){} + Char(char c) : c(c) + { + } }; -struct Int { +struct Int +{ int i; - operator int& (); - Int(int i):i(i){} + operator int &(); + Int(int i) : i(i) + { + } }; -Int::operator int&() {return i;} - -int main() +Int::operator int &() { - Int I1(1); - int i1 = int(I1); - assert(i1==1); - + return i; +} - Int I2(2); - int i2 = (int&)I2; - assert(i2==2); +int main() +{ + Int I1(1); + int i1 = int(I1); + assert(i1 == 1); + Int I2(2); + int i2 = (int &)I2; + assert(i2 == 2); - Int I3(3); - int i3 =0; - i3 = I3; - assert(i3==3); + Int I3(3); + int i3 = 0; + i3 = I3; + assert(i3 == 3); - Char C3(I3); - assert(C3.c==3); + Char C3(I3); + assert(C3.c == 3); } diff --git a/regression/cbmc-cpp/Conversion_Operator2/main.cpp b/regression/cbmc-cpp/Conversion_Operator2/main.cpp index 695940f2a58..593c7caf135 100644 --- a/regression/cbmc-cpp/Conversion_Operator2/main.cpp +++ b/regression/cbmc-cpp/Conversion_Operator2/main.cpp @@ -4,20 +4,26 @@ struct B int i; }; - -struct A { +struct A +{ B b; - A(int i) {b.i = i;} - operator B& () + A(int i) + { + b.i = i; + } + operator B &() { return b; } }; -int get_i(const B& b) {return b.i;} +int get_i(const B &b) +{ + return b.i; +} int main() { A a(10); - assert(get_i(a)==10); + assert(get_i(a) == 10); } diff --git a/regression/cbmc-cpp/Conversion_Operator3/main.cpp b/regression/cbmc-cpp/Conversion_Operator3/main.cpp index 360e4c94214..af276128233 100644 --- a/regression/cbmc-cpp/Conversion_Operator3/main.cpp +++ b/regression/cbmc-cpp/Conversion_Operator3/main.cpp @@ -1,11 +1,13 @@ #include -struct A { +struct A +{ int i; }; -struct B { +struct B +{ int i; - operator A () + operator A() { A tmp; tmp.i = i++; @@ -18,6 +20,6 @@ int main() B b; b.i = 1; A a = b; - assert(a.i==1); - assert(b.i==2); + assert(a.i == 1); + assert(b.i == 2); } diff --git a/regression/cbmc-cpp/Conversion_Operator4/main.cpp b/regression/cbmc-cpp/Conversion_Operator4/main.cpp index 34b5bc8e0d0..98a02302afd 100644 --- a/regression/cbmc-cpp/Conversion_Operator4/main.cpp +++ b/regression/cbmc-cpp/Conversion_Operator4/main.cpp @@ -1,8 +1,8 @@ #include struct A { - static const int* const i = 0; - operator const int* const ()const + static const int *const i = 0; + operator const int *const() const { return i; } @@ -11,5 +11,5 @@ struct A int main() { A a; - assert((const int* const)a == A::i); + assert((const int *const)a == A::i); } diff --git a/regression/cbmc-cpp/Conversion_Operator5/main.cpp b/regression/cbmc-cpp/Conversion_Operator5/main.cpp index ffec9ff65bd..c7d6a57d8c6 100644 --- a/regression/cbmc-cpp/Conversion_Operator5/main.cpp +++ b/regression/cbmc-cpp/Conversion_Operator5/main.cpp @@ -1,12 +1,14 @@ -struct B { +struct B +{ int i; - bool operator == (int b) + bool operator==(int b) { return i == b; } }; -struct A { +struct A +{ int i; operator B() const { @@ -16,8 +18,9 @@ struct A { } }; -int main() { +int main() +{ A a; a.i = 10; - assert( a.operator B() == 10 ); + assert(a.operator B() == 10); } diff --git a/regression/cbmc-cpp/Copy_Constructor1/main.cpp b/regression/cbmc-cpp/Copy_Constructor1/main.cpp index fba333831b8..01f8a015118 100644 --- a/regression/cbmc-cpp/Copy_Constructor1/main.cpp +++ b/regression/cbmc-cpp/Copy_Constructor1/main.cpp @@ -1,23 +1,31 @@ class A { - public: - A():i(0) {} - virtual int inc() {return ++i;} +public: + A() : i(0) + { + } + virtual int inc() + { + return ++i; + } int i; }; -class B: public A +class B : public A { - public: - int inc(){return i+=2;} +public: + int inc() + { + return i += 2; + } }; int main() { B b; int c = b.inc(); - assert(c==2); - A a=b; + assert(c == 2); + A a = b; c = a.inc(); - assert(c==3); + assert(c == 3); } diff --git a/regression/cbmc-cpp/Copy_Constructor2/main.cpp b/regression/cbmc-cpp/Copy_Constructor2/main.cpp index 95ad03af84c..f291ed6054b 100644 --- a/regression/cbmc-cpp/Copy_Constructor2/main.cpp +++ b/regression/cbmc-cpp/Copy_Constructor2/main.cpp @@ -1,15 +1,23 @@ class A { public: - A():i(0) { } - virtual int inc() { return ++i; } + A() : i(0) + { + } + virtual int inc() + { + return ++i; + } int i; }; -class B: public A +class B : public A { public: - int inc() { return i+=2; } + int inc() + { + return i += 2; + } }; int inc(A a) @@ -22,8 +30,8 @@ int main() B b; int c = b.inc(); - assert(c==2); + assert(c == 2); c = inc((A)b); - assert(c==3); + assert(c == 3); } diff --git a/regression/cbmc-cpp/Copy_Constructor3/main.cpp b/regression/cbmc-cpp/Copy_Constructor3/main.cpp index 8c601e54935..00797b7c153 100644 --- a/regression/cbmc-cpp/Copy_Constructor3/main.cpp +++ b/regression/cbmc-cpp/Copy_Constructor3/main.cpp @@ -1,13 +1,17 @@ class A { - public: +public: int ar[2]; - A(){ar[0]=0; ar[1]=1;} + A() + { + ar[0] = 0; + ar[1] = 1; + } }; class B { - public: +public: A as[2]; }; @@ -20,7 +24,7 @@ int main() b1.as[1].ar[1] += 2; B b2(b1); - assert(b2.as[0].ar[0]== 1); + assert(b2.as[0].ar[0] == 1); assert(b2.as[0].ar[1] == 2); assert(b2.as[1].ar[0] == 2); assert(b2.as[1].ar[1] == 3); diff --git a/regression/cbmc-cpp/Copy_Constructor5/main.cpp b/regression/cbmc-cpp/Copy_Constructor5/main.cpp index f6e83898767..c6cf81409ab 100644 --- a/regression/cbmc-cpp/Copy_Constructor5/main.cpp +++ b/regression/cbmc-cpp/Copy_Constructor5/main.cpp @@ -3,17 +3,19 @@ struct A int i; }; -struct B: public A +struct B : public A { int j; - B():j(0) { } + B() : j(0) + { + } }; int main() { B b1; - b1.i=10; - b1.j=20; + b1.i = 10; + b1.j = 20; B b2(b1); diff --git a/regression/cbmc-cpp/Copy_Operator1/main.cpp b/regression/cbmc-cpp/Copy_Operator1/main.cpp index 134f610fc5d..53054364ce3 100644 --- a/regression/cbmc-cpp/Copy_Operator1/main.cpp +++ b/regression/cbmc-cpp/Copy_Operator1/main.cpp @@ -1,27 +1,26 @@ class A { - public: +public: int ar[2]; - A& operator=(const A& ref) + A &operator=(const A &ref) { ar[0] = ref.ar[1]; ar[1] = ref.ar[0]; return *this; } - }; int main() { A a1; - a1.ar[0]= 1; - a1.ar[1]= 2; + a1.ar[0] = 1; + a1.ar[1] = 2; A a2; - a2.ar[0]= 3; - a2.ar[1]= 4; + a2.ar[0] = 3; + a2.ar[1] = 4; a2 = a1; - assert(a2.ar[0]==a1.ar[1]); - assert(a2.ar[1]==a1.ar[0]); + assert(a2.ar[0] == a1.ar[1]); + assert(a2.ar[1] == a1.ar[0]); } diff --git a/regression/cbmc-cpp/Copy_Operator2/main.cpp b/regression/cbmc-cpp/Copy_Operator2/main.cpp index 7751933bd7b..95ab129a2f7 100644 --- a/regression/cbmc-cpp/Copy_Operator2/main.cpp +++ b/regression/cbmc-cpp/Copy_Operator2/main.cpp @@ -1,11 +1,13 @@ class A { const int a; - A():a(0){} + A() : a(0) + { + } }; int main() { A a, b; - a=b; + a = b; } diff --git a/regression/cbmc-cpp/Default_Arguments1/main.cpp b/regression/cbmc-cpp/Default_Arguments1/main.cpp index 9a3ce690456..5630267d56b 100644 --- a/regression/cbmc-cpp/Default_Arguments1/main.cpp +++ b/regression/cbmc-cpp/Default_Arguments1/main.cpp @@ -1,32 +1,32 @@ #include // #include -int f(int d=1) +int f(int d = 1) { return d; } -int g(int x, int d=1, int q=2) +int g(int x, int d = 1, int q = 2) { return d; } int global; -int h(int &r=global) +int h(int &r = global) { return r; } void doit() { - assert(f()==1); - assert(f(2)==2); - assert(g(0)==1); - assert(g(1, 2)==2); + assert(f() == 1); + assert(f(2) == 2); + assert(g(0) == 1); + assert(g(1, 2) == 2); - global=10; - assert(h()==10); + global = 10; + assert(h() == 10); } int main() diff --git a/regression/cbmc-cpp/Default_Arguments2/main.cpp b/regression/cbmc-cpp/Default_Arguments2/main.cpp index ce575e23308..5b75d91f726 100644 --- a/regression/cbmc-cpp/Default_Arguments2/main.cpp +++ b/regression/cbmc-cpp/Default_Arguments2/main.cpp @@ -1,5 +1,8 @@ #include -int func(int i = 0) {return i;} +int func(int i = 0) +{ + return i; +} int main() { diff --git a/regression/cbmc-cpp/Destructor1/main.cpp b/regression/cbmc-cpp/Destructor1/main.cpp index 205da5fe5e0..addc104259f 100644 --- a/regression/cbmc-cpp/Destructor1/main.cpp +++ b/regression/cbmc-cpp/Destructor1/main.cpp @@ -3,18 +3,24 @@ int g; class t1 { public: - t1() { g=1; } - ~t1() { g=2; } + t1() + { + g = 1; + } + ~t1() + { + g = 2; + } }; int main() { - assert(g==0); + assert(g == 0); { t1 instance1; - assert(g==1); + assert(g == 1); } - assert(g==2); + assert(g == 2); } diff --git a/regression/cbmc-cpp/Destructor2/main.cpp b/regression/cbmc-cpp/Destructor2/main.cpp index 8a09834a255..4eae99fdc1e 100644 --- a/regression/cbmc-cpp/Destructor2/main.cpp +++ b/regression/cbmc-cpp/Destructor2/main.cpp @@ -3,23 +3,28 @@ int g; class t1 { public: - t1() { g=1; } - ~t1() { g=2; } + t1() + { + g = 1; + } + ~t1() + { + g = 2; + } }; int main() { - assert(g==0); + assert(g == 0); while(true) { { t1 instance1; - assert(g==1); + assert(g == 1); break; // leave the loop } - } - assert(g==2); + assert(g == 2); } diff --git a/regression/cbmc-cpp/Destructor3/main.cpp b/regression/cbmc-cpp/Destructor3/main.cpp index 0401dce629c..13b6ac7fcfc 100644 --- a/regression/cbmc-cpp/Destructor3/main.cpp +++ b/regression/cbmc-cpp/Destructor3/main.cpp @@ -3,8 +3,13 @@ class A int i; public: - A():i(1) { } - ~A() { i=0; } + A() : i(1) + { + } + ~A() + { + i = 0; + } }; int main() diff --git a/regression/cbmc-cpp/Destructor4/main.cpp b/regression/cbmc-cpp/Destructor4/main.cpp index b0f2876e47c..498ec0bf8e9 100644 --- a/regression/cbmc-cpp/Destructor4/main.cpp +++ b/regression/cbmc-cpp/Destructor4/main.cpp @@ -1,8 +1,10 @@ class A { - public: +public: int i; - A():i(1) {} + A() : i(1) + { + } ~A(); }; diff --git a/regression/cbmc-cpp/Destructor5/main.cpp b/regression/cbmc-cpp/Destructor5/main.cpp index 8a3d9bb4ff4..64cfb28893a 100644 --- a/regression/cbmc-cpp/Destructor5/main.cpp +++ b/regression/cbmc-cpp/Destructor5/main.cpp @@ -8,7 +8,7 @@ class X int main() { - const X *p=new X; + const X *p = new X; // this is to work even though p is const, and the destructor // isn't. diff --git a/regression/cbmc-cpp/Destructor_with_PtrMember/main.cpp b/regression/cbmc-cpp/Destructor_with_PtrMember/main.cpp index d8ce194bb53..7c9a84473b8 100644 --- a/regression/cbmc-cpp/Destructor_with_PtrMember/main.cpp +++ b/regression/cbmc-cpp/Destructor_with_PtrMember/main.cpp @@ -1,19 +1,24 @@ #include int global; -class test_class { +class test_class +{ public: - ~test_class() { global=1; } + ~test_class() + { + global = 1; + } }; -int main() { +int main() +{ test_class c, *p; - p=&c; + p = &c; - p -> ~test_class(); + p->~test_class(); - assert(global==1); + assert(global == 1); // The notation for explicit calls to destructors can be used regardless // of whether the type defines a destructor. This allows you to make such diff --git a/regression/cbmc-cpp/Exception1/main.cpp b/regression/cbmc-cpp/Exception1/main.cpp index dfaf154ab20..e6735cffd6b 100644 --- a/regression/cbmc-cpp/Exception1/main.cpp +++ b/regression/cbmc-cpp/Exception1/main.cpp @@ -3,7 +3,9 @@ class whatnot { public: - whatnot(int _i):i(_i) { } + whatnot(int _i) : i(_i) + { + } int i; }; @@ -13,7 +15,7 @@ int main() try { - throw (int)0; + throw(int) 0; assert(0); } @@ -34,7 +36,7 @@ int main() try { - throw (char)0; + throw(char) 0; assert(0); } @@ -68,6 +70,6 @@ int main() } catch(whatnot w) { - assert(w.i==1); + assert(w.i == 1); } } diff --git a/regression/cbmc-cpp/Float1/main.cpp b/regression/cbmc-cpp/Float1/main.cpp index 6b56b93b365..f822e416948 100644 --- a/regression/cbmc-cpp/Float1/main.cpp +++ b/regression/cbmc-cpp/Float1/main.cpp @@ -1,11 +1,11 @@ #include -int main(int argc, char* argv[]) +int main(int argc, char *argv[]) { float x = 0.1; float y = 1.01; - assert(x+y >= 1.1); + assert(x + y >= 1.1); double s = x; double t = 1; - assert(x+y >= 1.1); + assert(x + y >= 1.1); } diff --git a/regression/cbmc-cpp/Friend1/main.cpp b/regression/cbmc-cpp/Friend1/main.cpp index b32e8c26ab1..92002304cf7 100644 --- a/regression/cbmc-cpp/Friend1/main.cpp +++ b/regression/cbmc-cpp/Friend1/main.cpp @@ -1,13 +1,15 @@ class C { public: - C(int _base):base(_base) { } + C(int _base) : base(_base) + { + } typedef int T; friend int f() { - T x=1; + T x = 1; return x; } @@ -18,5 +20,5 @@ int main() { C c(1); - assert(f()==1); + assert(f() == 1); } diff --git a/regression/cbmc-cpp/Friend3/main.cpp b/regression/cbmc-cpp/Friend3/main.cpp index 71a47b40516..5190cd2adf8 100644 --- a/regression/cbmc-cpp/Friend3/main.cpp +++ b/regression/cbmc-cpp/Friend3/main.cpp @@ -1,17 +1,23 @@ -class A { - friend void inc(A&); - friend int get(const A& a); +class A +{ + friend void inc(A &); + friend int get(const A &a); int i; }; - -void inc(A& a) {a.i++;} -int get(const A& a) {return a.i;} +void inc(A &a) +{ + a.i++; +} +int get(const A &a) +{ + return a.i; +} A a; int main() { inc(a); - assert(get(a)==1); + assert(get(a) == 1); } diff --git a/regression/cbmc-cpp/Friend4/main.cpp b/regression/cbmc-cpp/Friend4/main.cpp index f9fc322cec6..36874706ef3 100644 --- a/regression/cbmc-cpp/Friend4/main.cpp +++ b/regression/cbmc-cpp/Friend4/main.cpp @@ -1,15 +1,21 @@ -class A { +class A +{ int i; }; - -void inc(A& a) {a.i++;} -int get(const A& a) {return a.i;} +void inc(A &a) +{ + a.i++; +} +int get(const A &a) +{ + return a.i; +} A a; int main() { inc(a); - assert(get(a)==1); + assert(get(a) == 1); } diff --git a/regression/cbmc-cpp/Friend5/main.cpp b/regression/cbmc-cpp/Friend5/main.cpp index 0260a430365..01f859e1287 100644 --- a/regression/cbmc-cpp/Friend5/main.cpp +++ b/regression/cbmc-cpp/Friend5/main.cpp @@ -1,18 +1,19 @@ #include -class A { +class A +{ int i; friend class B; }; class B { - public: - static int get(const A& a) +public: + static int get(const A &a) { return a.i; } - static void set(A& a, int i) + static void set(A &a, int i) { a.i = i; } @@ -20,8 +21,7 @@ class B int main() { - A a; B::set(a, 10); - assert(B::get(a)==10); + assert(B::get(a) == 10); } diff --git a/regression/cbmc-cpp/Friend6/main.cpp b/regression/cbmc-cpp/Friend6/main.cpp index 5690728f38f..813eb2dee11 100644 --- a/regression/cbmc-cpp/Friend6/main.cpp +++ b/regression/cbmc-cpp/Friend6/main.cpp @@ -1,23 +1,31 @@ class B; template -struct A { - int get_i(B& b); +struct A +{ + int get_i(B &b); }; -class B { +class B +{ int i; - public: - B():i(10) {} + +public: + B() : i(10) + { + } friend class A; }; -template -int A::get_i(B& b) {return b.i;} +template +int A::get_i(B &b) +{ + return b.i; +} int main() { B b; A a; - assert(a.get_i(b)==10); + assert(a.get_i(b) == 10); } diff --git a/regression/cbmc-cpp/Function_Arguments1/main.cpp b/regression/cbmc-cpp/Function_Arguments1/main.cpp index 7288a563364..fe97e5f9163 100644 --- a/regression/cbmc-cpp/Function_Arguments1/main.cpp +++ b/regression/cbmc-cpp/Function_Arguments1/main.cpp @@ -1,4 +1,4 @@ -inline void *memchr(void* __p, int __c, int __n) +inline void *memchr(void *__p, int __c, int __n) { __p++; } diff --git a/regression/cbmc-cpp/Function_Arguments2/main.cpp b/regression/cbmc-cpp/Function_Arguments2/main.cpp index 92f95d96dbb..1b5d2381a5f 100644 --- a/regression/cbmc-cpp/Function_Arguments2/main.cpp +++ b/regression/cbmc-cpp/Function_Arguments2/main.cpp @@ -1,14 +1,15 @@ #include // test default arguments -int f(int a, int b=2, int c=3) +int f(int a, int b = 2, int c = 3) { return c; } -class X{ +class X +{ public: - int g(int a, int b, int c=3); + int g(int a, int b, int c = 3); }; int X::g(int a, int b, int c) @@ -18,10 +19,10 @@ int X::g(int a, int b, int c) int main() { - assert(f(1, 10, 100)==100); - assert(f(1, 10)==3); - assert(f(1)==3); + assert(f(1, 10, 100) == 100); + assert(f(1, 10) == 3); + assert(f(1) == 3); X x; - assert(x.g(1, 2)==3); + assert(x.g(1, 2) == 3); } diff --git a/regression/cbmc-cpp/Function_Arguments3/main.cpp b/regression/cbmc-cpp/Function_Arguments3/main.cpp index 52860aae61a..a2078d78969 100644 --- a/regression/cbmc-cpp/Function_Arguments3/main.cpp +++ b/regression/cbmc-cpp/Function_Arguments3/main.cpp @@ -5,7 +5,7 @@ int global; // these are in fact the same void f(const int i) { - global=10; + global = 10; } void f(int i); @@ -13,22 +13,22 @@ void f(int i); // the following two are *different*! void g(int *p) { - global=20; + global = 20; } void g(const int *p) { - global=30; + global = 30; } int main() { f(0); - assert(global==10); + assert(global == 10); g((int *)0); - assert(global==20); + assert(global == 20); g((const int *)0); - assert(global==30); + assert(global == 30); } diff --git a/regression/cbmc-cpp/Function_Arguments4/main.cpp b/regression/cbmc-cpp/Function_Arguments4/main.cpp index 82555544910..8107531d25a 100644 --- a/regression/cbmc-cpp/Function_Arguments4/main.cpp +++ b/regression/cbmc-cpp/Function_Arguments4/main.cpp @@ -4,21 +4,25 @@ int i; struct B { - B() { i++; } - B(const B& b) { i+=10; } + B() + { + i++; + } + B(const B &b) + { + i += 10; + } }; - B f(B b) { - assert(i==11); + assert(i == 11); return b; } - int main() { B b; b = f(b); - assert(i==21); + assert(i == 21); } diff --git a/regression/cbmc-cpp/Function_Arguments5/main.cpp b/regression/cbmc-cpp/Function_Arguments5/main.cpp index ca49a3ddb7a..28f41323edc 100644 --- a/regression/cbmc-cpp/Function_Arguments5/main.cpp +++ b/regression/cbmc-cpp/Function_Arguments5/main.cpp @@ -1,11 +1,17 @@ #include -bool func(const int& i) {return false;} -bool func(const int* i) {return true;} +bool func(const int &i) +{ + return false; +} +bool func(const int *i) +{ + return true; +} int main() { int k; - int& rk = k; + int &rk = k; assert(!func(rk)); assert(func(&k)); } diff --git a/regression/cbmc-cpp/Function_Pointer1/main.cpp b/regression/cbmc-cpp/Function_Pointer1/main.cpp index 85ee5ef4609..c2635df9893 100644 --- a/regression/cbmc-cpp/Function_Pointer1/main.cpp +++ b/regression/cbmc-cpp/Function_Pointer1/main.cpp @@ -1,14 +1,14 @@ #include int f(int x) { - assert(x==1); + assert(x == 1); } int main() { int (*p)(int); - p=f; + p = f; p(1); } diff --git a/regression/cbmc-cpp/Implicit_Conversion1/main.cpp b/regression/cbmc-cpp/Implicit_Conversion1/main.cpp index 2ab10d04690..01654252b49 100644 --- a/regression/cbmc-cpp/Implicit_Conversion1/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion1/main.cpp @@ -4,7 +4,8 @@ struct A int i; }; -struct B: public A { +struct B : public A +{ int j; }; @@ -17,5 +18,5 @@ int main() { B b; b.i = 1; - assert(func(b)==1); + assert(func(b) == 1); } diff --git a/regression/cbmc-cpp/Implicit_Conversion2/main.cpp b/regression/cbmc-cpp/Implicit_Conversion2/main.cpp index 6dcdf0a8d06..9593ec44867 100644 --- a/regression/cbmc-cpp/Implicit_Conversion2/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion2/main.cpp @@ -1,14 +1,12 @@ -char func1(const char& c) +char func1(const char &c) { return c; } - int main() { - assert(func1((char)10)==10); + assert(func1((char)10) == 10); int i(20); - assert(func1((char)i)==20); - + assert(func1((char)i) == 20); } diff --git a/regression/cbmc-cpp/Implicit_Conversion3/main.cpp b/regression/cbmc-cpp/Implicit_Conversion3/main.cpp index 0687793c6e5..630502d7077 100644 --- a/regression/cbmc-cpp/Implicit_Conversion3/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion3/main.cpp @@ -1,21 +1,31 @@ struct A { int i; - A():i(0) {} - A(int i):i(i){} + A() : i(0) + { + } + A(int i) : i(i) + { + } }; struct B { int j; - B():j(0) {} - B(int j): j(j) {} - B(const A& a):j(a.i){} + B() : j(0) + { + } + B(int j) : j(j) + { + } + B(const A &a) : j(a.i) + { + } }; B operator+(const B b1, B b2) { - return B( b1.j + b2.j ); + return B(b1.j + b2.j); } int main() diff --git a/regression/cbmc-cpp/Implicit_Conversion4/main.cpp b/regression/cbmc-cpp/Implicit_Conversion4/main.cpp index 51d401fdc9e..daae15d8457 100644 --- a/regression/cbmc-cpp/Implicit_Conversion4/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion4/main.cpp @@ -2,28 +2,35 @@ struct B { int j; - B(int j):j(j){} + B(int j) : j(j) + { + } }; struct A { int i; - A(int i): i(i) {} - A(const B& b):i(b.j){} + A(int i) : i(i) + { + } + A(const B &b) : i(b.j) + { + } }; -struct C: public A +struct C : public A { - C(int i): A(i){} + C(int i) : A(i) + { + } }; - -int func1(const A& a) +int func1(const A &a) { return a.i; } -int func2(A& a) +int func2(A &a) { return a.i; } @@ -36,48 +43,47 @@ int func3(A a) int main() { A a1(10); - assert(func1(a1)==10); - assert(func2(a1)==10); - assert(func3(a1)==10); + assert(func1(a1) == 10); + assert(func2(a1) == 10); + assert(func3(a1) == 10); const A a2(20); - assert(func1(a2)==20); - assert(func3(a2)==20); + assert(func1(a2) == 20); + assert(func3(a2) == 20); - A& r1 = a1; - assert(func1(r1)==10); - assert(func2(r1)==10); - assert(func3(r1)==10); + A &r1 = a1; + assert(func1(r1) == 10); + assert(func2(r1) == 10); + assert(func3(r1) == 10); - const A& r2 = a1; - assert(func1(r2)==10); - assert(func3(r2)==10); + const A &r2 = a1; + assert(func1(r2) == 10); + assert(func3(r2) == 10); B b1(30); - assert(func3(b1)==30); + assert(func3(b1) == 30); - B& r3 = b1; - assert(func3(r3)==30); + B &r3 = b1; + assert(func3(r3) == 30); - const B& r4 = b1; - assert(func3(r4)==30); + const B &r4 = b1; + assert(func3(r4) == 30); C c1(40); - assert(func1(c1)==40); - assert(func2(c1)==40); - assert(func3(c1)==40); + assert(func1(c1) == 40); + assert(func2(c1) == 40); + assert(func3(c1) == 40); const C c2(50); - assert(func1(c2)==50); - assert(func3(c2)==50); - - C& r5 = c1; - assert(func1(r5)==40); - assert(func2(r5)==40); - assert(func3(r5)==40); + assert(func1(c2) == 50); + assert(func3(c2) == 50); - const C& r6 = c2; - assert(func1(r6)==50); - assert(func3(r6)==50); + C &r5 = c1; + assert(func1(r5) == 40); + assert(func2(r5) == 40); + assert(func3(r5) == 40); + const C &r6 = c2; + assert(func1(r6) == 50); + assert(func3(r6) == 50); } diff --git a/regression/cbmc-cpp/Implicit_Conversion5/main.cpp b/regression/cbmc-cpp/Implicit_Conversion5/main.cpp index 8c65195f099..52bcd7fc78b 100644 --- a/regression/cbmc-cpp/Implicit_Conversion5/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion5/main.cpp @@ -2,6 +2,6 @@ void f(int); int main() { - char* pc; + char *pc; f(pc); // invalid conversion } diff --git a/regression/cbmc-cpp/Implicit_Conversion6/main.cpp b/regression/cbmc-cpp/Implicit_Conversion6/main.cpp index 4423a5db053..af366dc801a 100644 --- a/regression/cbmc-cpp/Implicit_Conversion6/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion6/main.cpp @@ -1,6 +1,12 @@ #include -bool f(const char *) {return true;} -bool f(int) {return false;} +bool f(const char *) +{ + return true; +} +bool f(int) +{ + return false; +} int main() { diff --git a/regression/cbmc-cpp/Implicit_Conversion8/main.cpp b/regression/cbmc-cpp/Implicit_Conversion8/main.cpp index 2868594a2ef..ab21294d59f 100644 --- a/regression/cbmc-cpp/Implicit_Conversion8/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion8/main.cpp @@ -1,36 +1,40 @@ -struct Bit { +struct Bit +{ bool b; - Bit(bool b=false):b(b) {} - Bit(const Bit& bit):b(bit.b) {} - -// operator bool() const {return b;} - - Bit& operator=(bool b) + Bit(bool b = false) : b(b) { - this->b = b; - return *this; - } + } + Bit(const Bit &bit) : b(bit.b) + { + } + // operator bool() const {return b;} - Bit& operator =(const Bit& bit) - { - this->b = bit.b; - return *this; - } + Bit &operator=(bool b) + { + this->b = b; + return *this; + } + Bit &operator=(const Bit &bit) + { + this->b = bit.b; + return *this; + } - friend const Bit operator ~(const Bit& bit) + friend const Bit operator~(const Bit &bit) { Bit r; r.b = ~bit.b; return r; } - friend void b_not( Bit& r, const Bit& a ) - { r = (~a); } + friend void b_not(Bit &r, const Bit &a) + { + r = (~a); + } }; - int main() { Bit b1, b2; diff --git a/regression/cbmc-cpp/Implicit_Conversion9/main.cpp b/regression/cbmc-cpp/Implicit_Conversion9/main.cpp index 39dc405df5b..bfb62ca4f1f 100644 --- a/regression/cbmc-cpp/Implicit_Conversion9/main.cpp +++ b/regression/cbmc-cpp/Implicit_Conversion9/main.cpp @@ -1,13 +1,16 @@ -enum foo {NOT_AFFECTED, FATAL_AFFECT, WARNING}; +enum foo +{ + NOT_AFFECTED, + FATAL_AFFECT, + WARNING +}; -typedef struct { +typedef struct +{ foo SeverityType; } BitDatabaseRecordStruct; -const BitDatabaseRecordStruct BitDataBase [1] = -{ - {NOT_AFFECTED} -}; +const BitDatabaseRecordStruct BitDataBase[1] = {{NOT_AFFECTED}}; int main() { diff --git a/regression/cbmc-cpp/Inheritance1/main.cpp b/regression/cbmc-cpp/Inheritance1/main.cpp index 987563853ae..57a62e40f4c 100644 --- a/regression/cbmc-cpp/Inheritance1/main.cpp +++ b/regression/cbmc-cpp/Inheritance1/main.cpp @@ -9,10 +9,10 @@ class b void b::f() { - x=1; + x = 1; } -class t:public b +class t : public b { public: }; @@ -21,5 +21,5 @@ int main() { t instance; instance.f(); - assert(instance.x==1); + assert(instance.x == 1); } diff --git a/regression/cbmc-cpp/Inheritance2/main.cpp b/regression/cbmc-cpp/Inheritance2/main.cpp index 692b7a27f20..a33ff085e2e 100644 --- a/regression/cbmc-cpp/Inheritance2/main.cpp +++ b/regression/cbmc-cpp/Inheritance2/main.cpp @@ -7,10 +7,10 @@ class A void A::f() { - i=1; + i = 1; } -class B:public A +class B : public A { public: int i; @@ -30,7 +30,7 @@ int main() b.A::i = 10; b.f(); - assert(b.i == 2); + assert(b.i == 2); assert(b.A::i == 11); b.A::f(); diff --git a/regression/cbmc-cpp/Inheritance3/main.cpp b/regression/cbmc-cpp/Inheritance3/main.cpp index 9e2cc9eb45c..18157ff6dbd 100644 --- a/regression/cbmc-cpp/Inheritance3/main.cpp +++ b/regression/cbmc-cpp/Inheritance3/main.cpp @@ -1,9 +1,10 @@ #include -struct A { +struct A +{ typedef int INT; }; -struct B: public A +struct B : public A { INT i; void set(INT i) @@ -17,5 +18,5 @@ int main() B b; b.i = 0; b.i++; - assert(b.i==1); + assert(b.i == 1); } diff --git a/regression/cbmc-cpp/Inheritance4/main.cpp b/regression/cbmc-cpp/Inheritance4/main.cpp index c2431441f95..5e35aec632f 100644 --- a/regression/cbmc-cpp/Inheritance4/main.cpp +++ b/regression/cbmc-cpp/Inheritance4/main.cpp @@ -1,11 +1,17 @@ #include -struct A{ - int x; - A(){} +struct A +{ + int x; + A() + { + } }; -struct B: public A{ - B(){} +struct B : public A +{ + B() + { + } }; int main() diff --git a/regression/cbmc-cpp/Initializer1/main.cpp b/regression/cbmc-cpp/Initializer1/main.cpp index 7f0a99374f2..80e3fcb8569 100644 --- a/regression/cbmc-cpp/Initializer1/main.cpp +++ b/regression/cbmc-cpp/Initializer1/main.cpp @@ -1,10 +1,10 @@ #include -const char my_string[]="abc123"; +const char my_string[] = "abc123"; int main() { - assert(my_string[0]=='a'); - assert(my_string[6]==0); - assert(sizeof(my_string)==7); + assert(my_string[0] == 'a'); + assert(my_string[6] == 0); + assert(sizeof(my_string) == 7); } diff --git a/regression/cbmc-cpp/Label0/main.cpp b/regression/cbmc-cpp/Label0/main.cpp index fcb8724670b..6b4369436e1 100644 --- a/regression/cbmc-cpp/Label0/main.cpp +++ b/regression/cbmc-cpp/Label0/main.cpp @@ -4,5 +4,5 @@ int main() dummy_label: int i = 0; - assert(i==0); + assert(i == 0); } diff --git a/regression/cbmc-cpp/Linking1/main.cpp b/regression/cbmc-cpp/Linking1/main.cpp index 551ae3cbc3b..b01db464321 100644 --- a/regression/cbmc-cpp/Linking1/main.cpp +++ b/regression/cbmc-cpp/Linking1/main.cpp @@ -1,14 +1,14 @@ -#include #include "module.h" +#include extern int i; int main() { - assert(i==1); + assert(i == 1); T t; t.f(); - assert(i==2); + assert(i == 2); } diff --git a/regression/cbmc-cpp/Linking1/module.cpp b/regression/cbmc-cpp/Linking1/module.cpp index 125858be30d..9c14ec6f871 100644 --- a/regression/cbmc-cpp/Linking1/module.cpp +++ b/regression/cbmc-cpp/Linking1/module.cpp @@ -1,8 +1,8 @@ #include "module.h" -int i=1; +int i = 1; void T::f() { - i=2; + i = 2; } diff --git a/regression/cbmc-cpp/Linking2/test_link1.cpp b/regression/cbmc-cpp/Linking2/test_link1.cpp index 0d45e4fa116..2b6a716db19 100644 --- a/regression/cbmc-cpp/Linking2/test_link1.cpp +++ b/regression/cbmc-cpp/Linking2/test_link1.cpp @@ -7,6 +7,6 @@ int main() { int z; - x=z; - assert(f()==z); + x = z; + assert(f() == z); } diff --git a/regression/cbmc-cpp/Lvalue1/main.cpp b/regression/cbmc-cpp/Lvalue1/main.cpp index 15b0f40f58d..7a42954effd 100644 --- a/regression/cbmc-cpp/Lvalue1/main.cpp +++ b/regression/cbmc-cpp/Lvalue1/main.cpp @@ -1,10 +1,17 @@ -struct A { +struct A +{ int i; - A():i(0) {} - int get_i(){return i;} + A() : i(0) + { + } + int get_i() + { + return i; + } }; -A factory() { +A factory() +{ return A(); } @@ -22,5 +29,4 @@ int main() // Is the compatibility with gcc more important? assert(factory().get_i() == 0); - } diff --git a/regression/cbmc-cpp/Member_Access_in_Class/main.cpp b/regression/cbmc-cpp/Member_Access_in_Class/main.cpp index 678d70be4b4..45daa99eaed 100644 --- a/regression/cbmc-cpp/Member_Access_in_Class/main.cpp +++ b/regression/cbmc-cpp/Member_Access_in_Class/main.cpp @@ -2,9 +2,15 @@ class t { public: - void f() { i=1; } + void f() + { + i = 1; + } - void g() { f(); } + void g() + { + f(); + } int i; }; @@ -13,5 +19,5 @@ int main() { t instance; instance.g(); - assert(instance.i==1); + assert(instance.i == 1); } diff --git a/regression/cbmc-cpp/Multiple_Inheritance1/main.cpp b/regression/cbmc-cpp/Multiple_Inheritance1/main.cpp index 802aa5f9683..932eb983200 100644 --- a/regression/cbmc-cpp/Multiple_Inheritance1/main.cpp +++ b/regression/cbmc-cpp/Multiple_Inheritance1/main.cpp @@ -3,13 +3,17 @@ struct A int i; }; -struct B { +struct B +{ int j; - void setJ(int j){this->j = j;} + void setJ(int j) + { + this->j = j; + } }; - -struct C: A, B { +struct C : A, B +{ int k; }; @@ -17,5 +21,5 @@ int main() { C c; c.setJ(10); - assert(c.j==10); + assert(c.j == 10); } diff --git a/regression/cbmc-cpp/Multiple_Inheritance2/main.cpp b/regression/cbmc-cpp/Multiple_Inheritance2/main.cpp index cb076087222..f5e853f2308 100644 --- a/regression/cbmc-cpp/Multiple_Inheritance2/main.cpp +++ b/regression/cbmc-cpp/Multiple_Inheritance2/main.cpp @@ -1,10 +1,17 @@ -struct A{ +struct A +{ int i; A(){}; }; -struct B: virtual A{}; -struct C: virtual A{}; -struct D: B, C {}; +struct B : virtual A +{ +}; +struct C : virtual A +{ +}; +struct D : B, C +{ +}; int main() { diff --git a/regression/cbmc-cpp/Multiple_Inheritance3/main.cpp b/regression/cbmc-cpp/Multiple_Inheritance3/main.cpp index 6b031bbe595..ccded0ca162 100644 --- a/regression/cbmc-cpp/Multiple_Inheritance3/main.cpp +++ b/regression/cbmc-cpp/Multiple_Inheritance3/main.cpp @@ -1,4 +1,13 @@ -struct A{int i;}; -struct B: A {}; -struct C: A {}; -struct D: virtual B, virtual C {}; // we do not allow this +struct A +{ + int i; +}; +struct B : A +{ +}; +struct C : A +{ +}; +struct D : virtual B, virtual C +{ +}; // we do not allow this diff --git a/regression/cbmc-cpp/Multiple_Inheritance4/main.cpp b/regression/cbmc-cpp/Multiple_Inheritance4/main.cpp index e98a8cedcc8..90bd87f25d3 100644 --- a/regression/cbmc-cpp/Multiple_Inheritance4/main.cpp +++ b/regression/cbmc-cpp/Multiple_Inheritance4/main.cpp @@ -1,26 +1,31 @@ - struct ostream +struct ostream +{ + ostream(int id) : id(id) { - ostream(int id): id(id) {} - ostream(const ostream&); // disabled - ostream& operator=(const ostream&); // disabled - int id; - }; + } + ostream(const ostream &); // disabled + ostream &operator=(const ostream &); // disabled + int id; +}; - struct istream +struct istream +{ + istream(int id) : id(id) { - istream(int id): id(id) {} - istream(const istream&); // disabled - istream& operator=(const istream&); // disabled - int id; - }; + } + istream(const istream &); // disabled + istream &operator=(const istream &); // disabled + int id; +}; - struct iostream: ostream, istream +struct iostream : ostream, istream +{ + iostream(int id) : ostream(id), istream(id) { - iostream(int id): ostream(id), istream(id) {} - iostream(const iostream&); // disabled - iostream& operator=(const iostream&); // disabled - }; - + } + iostream(const iostream &); // disabled + iostream &operator=(const iostream &); // disabled +}; int main() { diff --git a/regression/cbmc-cpp/Mutable1/main.cpp b/regression/cbmc-cpp/Mutable1/main.cpp index 45f5b9f39cc..7808189b92e 100644 --- a/regression/cbmc-cpp/Mutable1/main.cpp +++ b/regression/cbmc-cpp/Mutable1/main.cpp @@ -12,5 +12,5 @@ int main() { const A a; a.set(99); - assert(a.i==99); + assert(a.i == 99); } diff --git a/regression/cbmc-cpp/Overloading_Functions1/main.cpp b/regression/cbmc-cpp/Overloading_Functions1/main.cpp index 2e900fa1101..5fcf66463e8 100644 --- a/regression/cbmc-cpp/Overloading_Functions1/main.cpp +++ b/regression/cbmc-cpp/Overloading_Functions1/main.cpp @@ -4,16 +4,33 @@ struct T { public: - T():x(0) { } + T() : x(0) + { + } int x; }; -int f(int i) { return 1; } -int f(const int *p) { return 2; } -int f(char i) { return 3; } -int f(struct T &t) { return 4; } -int f(const struct T &t) { return 5; } +int f(int i) +{ + return 1; +} +int f(const int *p) +{ + return 2; +} +int f(char i) +{ + return 3; +} +int f(struct T &t) +{ + return 4; +} +int f(const struct T &t) +{ + return 5; +} int main() { @@ -22,9 +39,9 @@ int main() T t; const T const_t; - assert(f(i)==1); - assert(f(&i)==2); - assert(f(ch)==3); - assert(f(t)==4); - assert(f(const_t)==5); + assert(f(i) == 1); + assert(f(&i) == 2); + assert(f(ch) == 3); + assert(f(t) == 4); + assert(f(const_t) == 5); } diff --git a/regression/cbmc-cpp/Overloading_Functions2/main.cpp b/regression/cbmc-cpp/Overloading_Functions2/main.cpp index 56f13da463b..ef690afe7ce 100644 --- a/regression/cbmc-cpp/Overloading_Functions2/main.cpp +++ b/regression/cbmc-cpp/Overloading_Functions2/main.cpp @@ -1,17 +1,26 @@ -struct A { +struct A +{ }; -struct B: A { +struct B : A +{ }; -struct C: B { +struct C : B +{ }; -bool f1(A&) {return true;} -bool f1(B&) {return false;} +bool f1(A &) +{ + return true; +} +bool f1(B &) +{ + return false; +} int main() { C c; - assert(f1(c)==false); + assert(f1(c) == false); } diff --git a/regression/cbmc-cpp/Overloading_Functions3/main.cpp b/regression/cbmc-cpp/Overloading_Functions3/main.cpp index 5e53142da6f..3ba0878f671 100644 --- a/regression/cbmc-cpp/Overloading_Functions3/main.cpp +++ b/regression/cbmc-cpp/Overloading_Functions3/main.cpp @@ -56,14 +56,14 @@ int f(long double) int main() { - assert(f((char)0)==1); - assert(f((unsigned char)0)==2); - assert(f((short int)0)==3); - assert(f((int)0)==4); - assert(f((unsigned int)0)==5); - assert(f((long int)0)==6); - assert(f((long long)0)==7); - assert(f((float)0)==8); - assert(f((double)0)==9); - assert(f((long double)0)==10); + assert(f((char)0) == 1); + assert(f((unsigned char)0) == 2); + assert(f((short int)0) == 3); + assert(f((int)0) == 4); + assert(f((unsigned int)0) == 5); + assert(f((long int)0) == 6); + assert(f((long long)0) == 7); + assert(f((float)0) == 8); + assert(f((double)0) == 9); + assert(f((long double)0) == 10); } diff --git a/regression/cbmc-cpp/Overloading_Functions4/main.cpp b/regression/cbmc-cpp/Overloading_Functions4/main.cpp index 45450811ee7..c63d368170b 100644 --- a/regression/cbmc-cpp/Overloading_Functions4/main.cpp +++ b/regression/cbmc-cpp/Overloading_Functions4/main.cpp @@ -9,5 +9,5 @@ int main() { double x; // the literal types select the function - x=pow(2.0f, 3); + x = pow(2.0f, 3); } diff --git a/regression/cbmc-cpp/Overloading_Increment1/main.cpp b/regression/cbmc-cpp/Overloading_Increment1/main.cpp index 71a9ea3e80d..e38a2599120 100644 --- a/regression/cbmc-cpp/Overloading_Increment1/main.cpp +++ b/regression/cbmc-cpp/Overloading_Increment1/main.cpp @@ -9,7 +9,7 @@ struct A return obj; } - A& operator++() + A &operator++() { a++; return *this; @@ -22,7 +22,7 @@ struct A return obj; } - A& operator--() + A &operator--() { a--; return *this; @@ -34,11 +34,11 @@ int main() A obj; obj.a = 0; A obj2 = obj++; - assert(obj2.a == 0 && obj.a==1); + assert(obj2.a == 0 && obj.a == 1); obj2 = ++obj; - assert(obj2.a == 2 && obj.a==2); + assert(obj2.a == 2 && obj.a == 2); obj2 = obj--; - assert(obj2.a == 2 && obj.a==1); + assert(obj2.a == 2 && obj.a == 1); obj2 = --obj; - assert(obj2.a == 0 && obj.a==0); + assert(obj2.a == 0 && obj.a == 0); } diff --git a/regression/cbmc-cpp/Overloading_Members1/main.cpp b/regression/cbmc-cpp/Overloading_Members1/main.cpp index 74d1535325f..fd9645dca77 100644 --- a/regression/cbmc-cpp/Overloading_Members1/main.cpp +++ b/regression/cbmc-cpp/Overloading_Members1/main.cpp @@ -18,6 +18,6 @@ int main() T x; const T x_const; - assert(x_const.f()==1); - assert(x.f()==2); + assert(x_const.f() == 1); + assert(x.f() == 2); } diff --git a/regression/cbmc-cpp/Overloading_Operators1/main.cpp b/regression/cbmc-cpp/Overloading_Operators1/main.cpp index 1dfeeebe1f6..ad6a7b193d0 100644 --- a/regression/cbmc-cpp/Overloading_Operators1/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators1/main.cpp @@ -19,9 +19,9 @@ int main() int temp; - temp=x+2; - assert(temp==2); + temp = x + 2; + assert(temp == 2); - temp=x-3; - assert(temp==-3); + temp = x - 3; + assert(temp == -3); } diff --git a/regression/cbmc-cpp/Overloading_Operators10/main.cpp b/regression/cbmc-cpp/Overloading_Operators10/main.cpp index 5bb82e98875..8d51cb64d64 100644 --- a/regression/cbmc-cpp/Overloading_Operators10/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators10/main.cpp @@ -1,18 +1,27 @@ struct A { - bool True(){return true;} + bool True() + { + return true; + } }; struct B { A a; - A* operator->(){return &a;} + A *operator->() + { + return &a; + } }; struct C { B b; - B& operator->(){return b;} + B &operator->() + { + return b; + } }; int main() diff --git a/regression/cbmc-cpp/Overloading_Operators11/main.cpp b/regression/cbmc-cpp/Overloading_Operators11/main.cpp index 83b333353e8..58c8e6c4e4c 100644 --- a/regression/cbmc-cpp/Overloading_Operators11/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators11/main.cpp @@ -1,17 +1,30 @@ -struct C { +struct C +{ bool b; - C(bool b):b(b){} + C(bool b) : b(b) + { + } }; -struct A { +struct A +{ C c1; - A():c1(false) {} - const C* operator->() const {return &c1;} + A() : c1(false) + { + } + const C *operator->() const + { + return &c1; + } }; -struct B : A { - bool func() const { return (*this)->b;} +struct B : A +{ + bool func() const + { + return (*this)->b; + } }; int main() diff --git a/regression/cbmc-cpp/Overloading_Operators12/main.cpp b/regression/cbmc-cpp/Overloading_Operators12/main.cpp index 8724ff2c0c1..e0371704731 100644 --- a/regression/cbmc-cpp/Overloading_Operators12/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators12/main.cpp @@ -1,11 +1,18 @@ #include -struct A { - bool operator << (const A&) const {return true;} - bool func(const A& a)const{ return operator <<(a);} +struct A +{ + bool operator<<(const A &) const + { + return true; + } + bool func(const A &a) const + { + return operator<<(a); + } }; int main() { A a; - assert(a.func(a)==true); + assert(a.func(a) == true); } diff --git a/regression/cbmc-cpp/Overloading_Operators13/main.cpp b/regression/cbmc-cpp/Overloading_Operators13/main.cpp index 8a7ab7b5980..1301b47e189 100644 --- a/regression/cbmc-cpp/Overloading_Operators13/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators13/main.cpp @@ -1,16 +1,27 @@ #include -struct A { - bool operator[](int index) {return true;} +struct A +{ + bool operator[](int index) + { + return true; + } }; -struct B { +struct B +{ A a; - bool operator[](int index) {return false;} - bool func(){return a[0];} + bool operator[](int index) + { + return false; + } + bool func() + { + return a[0]; + } }; int main() { B b; - assert(b.func()==true); + assert(b.func() == true); } diff --git a/regression/cbmc-cpp/Overloading_Operators14/main.cpp b/regression/cbmc-cpp/Overloading_Operators14/main.cpp index 5a7244a4f6b..8305244bd2a 100644 --- a/regression/cbmc-cpp/Overloading_Operators14/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators14/main.cpp @@ -2,13 +2,19 @@ struct A { typedef int INT; int i; - operator INT() { return i;} - INT value(){return operator INT();} + operator INT() + { + return i; + } + INT value() + { + return operator INT(); + } }; int main() { A a; a.i = 20; - assert( a.value() == 20); + assert(a.value() == 20); } diff --git a/regression/cbmc-cpp/Overloading_Operators16/main.cpp b/regression/cbmc-cpp/Overloading_Operators16/main.cpp index 1ef26c04484..0b02e3fbafe 100644 --- a/regression/cbmc-cpp/Overloading_Operators16/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators16/main.cpp @@ -1,24 +1,25 @@ class module_name { - public: - operator const char*() ; - operator int(); - operator char(); - operator long long(); - operator unsigned int(); - operator bool(); +public: + operator const char *(); + operator int(); + operator char(); + operator long long(); + operator unsigned int(); + operator bool(); }; -void f (module_name name) { - (const char*) name; - name .operator const char *(); - name .operator int(); - name .operator char(); - name .operator bool(); - name.operator unsigned int(); - name.operator long long(); +void f(module_name name) +{ + (const char *)name; + name.operator const char *(); + name.operator int(); + name.operator char(); + name.operator bool(); + name.operator unsigned int(); + name.operator long long(); } -int main(int argc, char* argv[]) +int main(int argc, char *argv[]) { } diff --git a/regression/cbmc-cpp/Overloading_Operators2/main.cpp b/regression/cbmc-cpp/Overloading_Operators2/main.cpp index cf002f4cfe9..62bc7107ab2 100644 --- a/regression/cbmc-cpp/Overloading_Operators2/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators2/main.cpp @@ -2,14 +2,16 @@ class C { public: - C(int _base):base(_base) { } + C(int _base) : base(_base) + { + } - int operator [] (int x) + int operator[](int x) { - return base+x; + return base + x; } - int operator [] (class Z &z) + int operator[](class Z &z) { return 0; } @@ -21,6 +23,6 @@ int main() { C c(1); - assert(c[0]==1); - assert(c[2]==3); + assert(c[0] == 1); + assert(c[2] == 3); } diff --git a/regression/cbmc-cpp/Overloading_Operators4/main.cpp b/regression/cbmc-cpp/Overloading_Operators4/main.cpp index f557ef63832..d0c29257667 100644 --- a/regression/cbmc-cpp/Overloading_Operators4/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators4/main.cpp @@ -1,16 +1,15 @@ struct X { - X():i(1), j(2) + X() : i(1), j(2) { } int i; int j; - bool operator == (const struct X &o) + bool operator==(const struct X &o) { - return i==o.i && - j==o.j; + return i == o.i && j == o.j; } bool func() @@ -25,7 +24,7 @@ void doit() { X a, b; - assert(a==b); + assert(a == b); } int main() diff --git a/regression/cbmc-cpp/Overloading_Operators5/main.cpp b/regression/cbmc-cpp/Overloading_Operators5/main.cpp index 5110a7aef0b..77a06670a32 100644 --- a/regression/cbmc-cpp/Overloading_Operators5/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators5/main.cpp @@ -9,12 +9,12 @@ struct X int i; int j; - X &operator= (const struct X &r); + X &operator=(const struct X &r); }; -X &X::operator= (const struct X &r) +X &X::operator=(const struct X &r) { - g=2; + g = 2; return *this; } @@ -22,11 +22,11 @@ void doit() { X a, b; - g=1; + g = 1; - a=b; + a = b; - assert(g==2); + assert(g == 2); } int main() diff --git a/regression/cbmc-cpp/Overloading_Operators6/main.cpp b/regression/cbmc-cpp/Overloading_Operators6/main.cpp index bb957c3f9ef..33dda14f1bd 100644 --- a/regression/cbmc-cpp/Overloading_Operators6/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators6/main.cpp @@ -1,13 +1,30 @@ struct A { int i; - A():i(1) {} + A() : i(1) + { + } - int& operator* () {return i;} - int operator+ (int j) {return i+j;} - int operator~ () {return ~i;} - int operator[] (int k) {return i;} - int operator== (int k) {return i=i;} + int &operator*() + { + return i; + } + int operator+(int j) + { + return i + j; + } + int operator~() + { + return ~i; + } + int operator[](int k) + { + return i; + } + int operator==(int k) + { + return i = i; + } void func1() { @@ -28,10 +45,8 @@ struct A assert((*this)[2] == *(*this)); assert((*this) == 1); } - }; - int main() { A o; diff --git a/regression/cbmc-cpp/Overloading_Operators7/main.cpp b/regression/cbmc-cpp/Overloading_Operators7/main.cpp index 33eda131775..5a401c532a6 100644 --- a/regression/cbmc-cpp/Overloading_Operators7/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators7/main.cpp @@ -4,12 +4,14 @@ int g; struct A { int i; - A(int i):i(i) {} + A(int i) : i(i) + { + } - friend bool operator==(const A& a1, const A& a2) + friend bool operator==(const A &a1, const A &a2) { - g=10; - return a1.i==a2.i; + g = 10; + return a1.i == a2.i; } }; @@ -18,5 +20,5 @@ int main() A a1(1); A a2(2); assert(!(a1 == a2)); - assert(g==10); + assert(g == 10); } diff --git a/regression/cbmc-cpp/Overloading_Operators8/main.cpp b/regression/cbmc-cpp/Overloading_Operators8/main.cpp index 45f6b8d1252..ca01bdd12f4 100644 --- a/regression/cbmc-cpp/Overloading_Operators8/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators8/main.cpp @@ -1,12 +1,13 @@ #include -struct A { +struct A +{ int i; }; -A& operator <<(A& a1, A& a2) +A &operator<<(A &a1, A &a2) { - a1.i=a2.i; - a2.i=0; + a1.i = a2.i; + a2.i = 0; return a1; } @@ -15,7 +16,7 @@ int main() A a1, a2; a2.i = 400; A a3(a1 << a2); - assert(a2.i==0); - assert(a3.i==a1.i); - assert(a1.i==400); + assert(a2.i == 0); + assert(a3.i == a1.i); + assert(a1.i == 400); } diff --git a/regression/cbmc-cpp/Overloading_Operators9/main.cpp b/regression/cbmc-cpp/Overloading_Operators9/main.cpp index f7007039bd8..56a279f65cd 100644 --- a/regression/cbmc-cpp/Overloading_Operators9/main.cpp +++ b/regression/cbmc-cpp/Overloading_Operators9/main.cpp @@ -7,7 +7,7 @@ struct C struct B { C c; - C* operator->() + C *operator->() { return &c; } @@ -16,7 +16,7 @@ struct B struct A { B b; - B& operator->() + B &operator->() { return b; } @@ -26,5 +26,5 @@ int main() { A a; a->d = 2; - assert(a.b.c.d==2); + assert(a.b.c.d == 2); } diff --git a/regression/cbmc-cpp/Pointer_Conversion2/main.cpp b/regression/cbmc-cpp/Pointer_Conversion2/main.cpp index 6c3fdfebf23..ed2e29f5117 100644 --- a/regression/cbmc-cpp/Pointer_Conversion2/main.cpp +++ b/regression/cbmc-cpp/Pointer_Conversion2/main.cpp @@ -3,7 +3,7 @@ char a[100]; void f(const signed char x[]) { - assert(x[0]==0); + assert(x[0] == 0); } int main() diff --git a/regression/cbmc-cpp/Pointer_Conversion3/main.cpp b/regression/cbmc-cpp/Pointer_Conversion3/main.cpp index e7a36e59709..c7e1c3fb021 100644 --- a/regression/cbmc-cpp/Pointer_Conversion3/main.cpp +++ b/regression/cbmc-cpp/Pointer_Conversion3/main.cpp @@ -1,6 +1,6 @@ -struct A { +struct A +{ int i; - }; struct B @@ -11,7 +11,7 @@ struct B int main() { - A* pa; - B* pb; - pb = static_cast(pa); // ill-formed + A *pa; + B *pb; + pb = static_cast(pa); // ill-formed } diff --git a/regression/cbmc-cpp/Pointer_To_Member1/main.cpp b/regression/cbmc-cpp/Pointer_To_Member1/main.cpp index 62e9d88feb8..d0fca4cf93d 100644 --- a/regression/cbmc-cpp/Pointer_To_Member1/main.cpp +++ b/regression/cbmc-cpp/Pointer_To_Member1/main.cpp @@ -1,11 +1,14 @@ class A { - public: - int f(char i){return i+1;} +public: + int f(char i) + { + return i + 1; + } }; A a; -int (A::* paf)(char) = &A::f; +int (A::*paf)(char) = &A::f; int main() { int v1 = (a.*paf)(0); diff --git a/regression/cbmc-cpp/Pointer_To_Member2/main.cpp b/regression/cbmc-cpp/Pointer_To_Member2/main.cpp index f28348526ab..47e4afd00e3 100644 --- a/regression/cbmc-cpp/Pointer_To_Member2/main.cpp +++ b/regression/cbmc-cpp/Pointer_To_Member2/main.cpp @@ -3,9 +3,12 @@ class A int a; }; -int f(A* pa, char i) {return i+1;} +int f(A *pa, char i) +{ + return i + 1; +} int main() { - int (A::* paf)(char) = &f; // ill-formed + int (A::*paf)(char) = &f; // ill-formed } diff --git a/regression/cbmc-cpp/Pointer_To_Member3/main.cpp b/regression/cbmc-cpp/Pointer_To_Member3/main.cpp index f674920c66c..35a94622fea 100644 --- a/regression/cbmc-cpp/Pointer_To_Member3/main.cpp +++ b/regression/cbmc-cpp/Pointer_To_Member3/main.cpp @@ -1,12 +1,14 @@ class A { - public: +public: int a; - int f(char i){return i+1;} + int f(char i) + { + return i + 1; + } }; - int main() { - int (* pf)(A*, char) = &A::f; // ill-formed + int (*pf)(A *, char) = &A::f; // ill-formed } diff --git a/regression/cbmc-cpp/Pointer_To_Member4/main.cpp b/regression/cbmc-cpp/Pointer_To_Member4/main.cpp index 5b36451b909..7c8e02ad818 100644 --- a/regression/cbmc-cpp/Pointer_To_Member4/main.cpp +++ b/regression/cbmc-cpp/Pointer_To_Member4/main.cpp @@ -1,12 +1,15 @@ class A { - public: - int f(){return 1;} +public: + int f() + { + return 1; + } }; int main() { - int (A::* paf)() = &A::f; + int (A::*paf)() = &A::f; A a; (*paf)(&a); // ill-formed } diff --git a/regression/cbmc-cpp/Pointer_To_Member5/main.cpp b/regression/cbmc-cpp/Pointer_To_Member5/main.cpp index f79f05c3c46..268446fccc6 100644 --- a/regression/cbmc-cpp/Pointer_To_Member5/main.cpp +++ b/regression/cbmc-cpp/Pointer_To_Member5/main.cpp @@ -2,15 +2,23 @@ struct A { int i; - int func(){return i;} + int func() + { + return i; + } }; struct B { - A* pa; - int (A::* pmethod)(); - B(A* pa, int (A::* pmethod)()):pa(pa), pmethod(pmethod) {} - int eval(){return (pa->*pmethod)();} + A *pa; + int (A::*pmethod)(); + B(A *pa, int (A::*pmethod)()) : pa(pa), pmethod(pmethod) + { + } + int eval() + { + return (pa->*pmethod)(); + } }; int main() diff --git a/regression/cbmc-cpp/Pointer_To_Member6/main.cpp b/regression/cbmc-cpp/Pointer_To_Member6/main.cpp index 3ab65447e5d..11f79dd5287 100644 --- a/regression/cbmc-cpp/Pointer_To_Member6/main.cpp +++ b/regression/cbmc-cpp/Pointer_To_Member6/main.cpp @@ -1,14 +1,16 @@ struct A { int i; - void func(){i = 10;} + void func() + { + i = 10; + } }; -struct B: public A +struct B : public A { - void (A::* pmeth)(); - B(): - pmeth(&A::func) + void (A::*pmeth)(); + B() : pmeth(&A::func) { (this->*pmeth)(); } diff --git a/regression/cbmc-cpp/Protection2/main.cpp b/regression/cbmc-cpp/Protection2/main.cpp index b8009d63d3b..3a3ac251171 100644 --- a/regression/cbmc-cpp/Protection2/main.cpp +++ b/regression/cbmc-cpp/Protection2/main.cpp @@ -1,20 +1,26 @@ #include struct A { - protected: +protected: int i; }; -class B: A +class B : A { - public: - void set(int i) {this->i = i;} - int get() const {return i;} +public: + void set(int i) + { + this->i = i; + } + int get() const + { + return i; + } }; int main() { B b; b.set(0); - assert(b.get()== 0); + assert(b.get() == 0); } diff --git a/regression/cbmc-cpp/Protection3/main.cpp b/regression/cbmc-cpp/Protection3/main.cpp index aa745b53f35..7bd24e0b4e5 100644 --- a/regression/cbmc-cpp/Protection3/main.cpp +++ b/regression/cbmc-cpp/Protection3/main.cpp @@ -2,9 +2,12 @@ class A { int i; - public: +public: class B { - int get(const A& a){return a.i;} + int get(const A &a) + { + return a.i; + } }; }; diff --git a/regression/cbmc-cpp/Protection4/main.cpp b/regression/cbmc-cpp/Protection4/main.cpp index edb5b11ead1..7b09f14fe14 100644 --- a/regression/cbmc-cpp/Protection4/main.cpp +++ b/regression/cbmc-cpp/Protection4/main.cpp @@ -1,12 +1,18 @@ struct A { - private: +private: int i; }; -class B: public A +class B : public A { - public: - void set(int i) {this->i = i;} - int get() const {return i;} +public: + void set(int i) + { + this->i = i; + } + int get() const + { + return i; + } }; diff --git a/regression/cbmc-cpp/Protection5/main.cpp b/regression/cbmc-cpp/Protection5/main.cpp index e654089c391..b1ac8ab2537 100644 --- a/regression/cbmc-cpp/Protection5/main.cpp +++ b/regression/cbmc-cpp/Protection5/main.cpp @@ -1,15 +1,14 @@ class A { - public: +public: int i; }; -class B: A +class B : A { - }; -void set_one(A& a) +void set_one(A &a) { a.i = 1; } diff --git a/regression/cbmc-cpp/Protection6/main.cpp b/regression/cbmc-cpp/Protection6/main.cpp index 72f33b28e54..4d6770c841e 100644 --- a/regression/cbmc-cpp/Protection6/main.cpp +++ b/regression/cbmc-cpp/Protection6/main.cpp @@ -1,5 +1,8 @@ -class A { - static void func(){} +class A +{ + static void func() + { + } }; int main() diff --git a/regression/cbmc-cpp/Protection7/main.cpp b/regression/cbmc-cpp/Protection7/main.cpp index 6194604583f..ec49c783336 100644 --- a/regression/cbmc-cpp/Protection7/main.cpp +++ b/regression/cbmc-cpp/Protection7/main.cpp @@ -2,19 +2,23 @@ struct A { int i; A(){}; - protected: - A(int i):i(i){} +protected: + A(int i) : i(i) + { + } }; -struct B: A +struct B : A { - B():A(0){} + B() : A(0) + { + } }; B b; int main() { - assert(b.i==0); + assert(b.i == 0); } diff --git a/regression/cbmc-cpp/Protection8/main.cpp b/regression/cbmc-cpp/Protection8/main.cpp index b0b2de06b11..dc14c23cac8 100644 --- a/regression/cbmc-cpp/Protection8/main.cpp +++ b/regression/cbmc-cpp/Protection8/main.cpp @@ -1,21 +1,27 @@ struct A { - protected: +protected: int i; - int get_i() {return i;} - - A(int i):i(i){} + int get_i() + { + return i; + } + A(int i) : i(i) + { + } }; -struct B: A +struct B : A { - B():A(0){} + B() : A(0) + { + } }; B b; int main() { - assert(b.get_i()==0); + assert(b.get_i() == 0); } diff --git a/regression/cbmc-cpp/Qualifier1/main.cpp b/regression/cbmc-cpp/Qualifier1/main.cpp index d2219dc9ef9..aeb5ff5cfd2 100644 --- a/regression/cbmc-cpp/Qualifier1/main.cpp +++ b/regression/cbmc-cpp/Qualifier1/main.cpp @@ -1,4 +1,5 @@ -struct A { +struct A +{ int a; }; @@ -6,7 +7,6 @@ struct B { void f() { - A::a = 1; // ill-formed - + A::a = 1; // ill-formed } }; diff --git a/regression/cbmc-cpp/Qualifier2/main.cpp b/regression/cbmc-cpp/Qualifier2/main.cpp index c62e6cbf217..2c523a11e09 100644 --- a/regression/cbmc-cpp/Qualifier2/main.cpp +++ b/regression/cbmc-cpp/Qualifier2/main.cpp @@ -4,7 +4,7 @@ struct A static int i; }; -struct B: public A +struct B : public A { static int i; }; @@ -21,5 +21,4 @@ int main() assert(B::i == 2); obj.A::i++; assert(A::i == 1); - } diff --git a/regression/cbmc-cpp/Qualifier4/main.cpp b/regression/cbmc-cpp/Qualifier4/main.cpp index 7c8722b0aca..6d932593e0e 100644 --- a/regression/cbmc-cpp/Qualifier4/main.cpp +++ b/regression/cbmc-cpp/Qualifier4/main.cpp @@ -5,5 +5,5 @@ struct A int main() { - int i = (int) A::f; + int i = (int)A::f; } diff --git a/regression/cbmc-cpp/Reference1/main.cpp b/regression/cbmc-cpp/Reference1/main.cpp index b14812ada8f..76df1b077a3 100644 --- a/regression/cbmc-cpp/Reference1/main.cpp +++ b/regression/cbmc-cpp/Reference1/main.cpp @@ -2,21 +2,21 @@ int g; void function(int &ref) { - ref=2; + ref = 2; } int main() { - int &r=g; + int &r = g; - r=1; + r = 1; - assert(g==1); + assert(g == 1); function(r); - assert(g==2); + assert(g == 2); // ?: does produce an l-value, apparently - int &s=g?r:g; + int &s = g ? r : g; } diff --git a/regression/cbmc-cpp/Reference2/main.cpp b/regression/cbmc-cpp/Reference2/main.cpp index 8092fedaff9..f1a06cd08b2 100644 --- a/regression/cbmc-cpp/Reference2/main.cpp +++ b/regression/cbmc-cpp/Reference2/main.cpp @@ -12,19 +12,19 @@ int &function() int main() { - g=1; - function()=2; - assert(g==2); + g = 1; + function() = 2; + assert(g == 2); { - int *p=&g; - int &r=*p; - assert(r==2); + int *p = &g; + int &r = *p; + assert(r == 2); } { X x; - X *p=&x; - X &r=*p; + X *p = &x; + X &r = *p; } } diff --git a/regression/cbmc-cpp/Reference3/main.cpp b/regression/cbmc-cpp/Reference3/main.cpp index 6aefb89824c..41e708bce22 100644 --- a/regression/cbmc-cpp/Reference3/main.cpp +++ b/regression/cbmc-cpp/Reference3/main.cpp @@ -1,19 +1,22 @@ #include -class A +class A { - public: - int& i; - A(int &i):i(i) {} - private: - A& operator=(const A&); +public: + int &i; + A(int &i) : i(i) + { + } + +private: + A &operator=(const A &); }; int main() { int var; - int& ref =var; + int &ref = var; var = 10; A a(var); a.i = 20; - assert(var==20); + assert(var == 20); } diff --git a/regression/cbmc-cpp/Reference4/main.cpp b/regression/cbmc-cpp/Reference4/main.cpp index 9de7c1c0203..6d60cd5d77f 100644 --- a/regression/cbmc-cpp/Reference4/main.cpp +++ b/regression/cbmc-cpp/Reference4/main.cpp @@ -1,3 +1,4 @@ -class A{ - int& a; +class A +{ + int &a; }; diff --git a/regression/cbmc-cpp/Reference5/main.cpp b/regression/cbmc-cpp/Reference5/main.cpp index 7eb9f918bea..f083e51af6d 100644 --- a/regression/cbmc-cpp/Reference5/main.cpp +++ b/regression/cbmc-cpp/Reference5/main.cpp @@ -1,5 +1,7 @@ class A { - int & a; - A():a(){} + int &a; + A() : a() + { + } }; diff --git a/regression/cbmc-cpp/Reference6/main.cpp b/regression/cbmc-cpp/Reference6/main.cpp index 5e222e832d0..cb80bf9f6f3 100644 --- a/regression/cbmc-cpp/Reference6/main.cpp +++ b/regression/cbmc-cpp/Reference6/main.cpp @@ -4,7 +4,7 @@ class X public: int x; - X():x(0) + X() : x(0) { } }; @@ -18,9 +18,9 @@ X &r() int main() { - y.x=10; + y.x = 10; - r()=y; + r() = y; - assert(g.x==10); + assert(g.x == 10); } diff --git a/regression/cbmc-cpp/Reference7/main.cpp b/regression/cbmc-cpp/Reference7/main.cpp index 16ce32244a5..b833d012759 100644 --- a/regression/cbmc-cpp/Reference7/main.cpp +++ b/regression/cbmc-cpp/Reference7/main.cpp @@ -2,8 +2,8 @@ int main() { - int i = 8; - int* p = &i; - int*& rp = p; - assert(*rp == 8); + int i = 8; + int *p = &i; + int *&rp = p; + assert(*rp == 8); } diff --git a/regression/cbmc-cpp/Reference8/main.cpp b/regression/cbmc-cpp/Reference8/main.cpp index 865aff6e796..26ce83d9c5f 100644 --- a/regression/cbmc-cpp/Reference8/main.cpp +++ b/regression/cbmc-cpp/Reference8/main.cpp @@ -1,4 +1,4 @@ int main() { - int *&* p; // parsing error + int *&*p; // parsing error } diff --git a/regression/cbmc-cpp/Resolver13/main.cpp b/regression/cbmc-cpp/Resolver13/main.cpp index a8799debe84..c0177eeb948 100644 --- a/regression/cbmc-cpp/Resolver13/main.cpp +++ b/regression/cbmc-cpp/Resolver13/main.cpp @@ -2,14 +2,26 @@ struct A { - A* operator->() { return this; } - int one() { return 1; } - int one(int &i){ i = 1;} + A *operator->() + { + return this; + } + int one() + { + return 1; + } + int one(int &i) + { + i = 1; + } }; -struct B: public A +struct B : public A { - A* operator->(){ return this; } + A *operator->() + { + return this; + } }; int main() diff --git a/regression/cbmc-cpp/Resolver5/main.cpp b/regression/cbmc-cpp/Resolver5/main.cpp index df0f977a404..03bd30c27db 100644 --- a/regression/cbmc-cpp/Resolver5/main.cpp +++ b/regression/cbmc-cpp/Resolver5/main.cpp @@ -1,11 +1,15 @@ namespace n1 { - struct A { - int i; - }; +struct A +{ + int i; +}; - int func(A a) {return a.i;} +int func(A a) +{ + return a.i; } +} // namespace n1 int main() { diff --git a/regression/cbmc-cpp/Resolver7/main.cpp b/regression/cbmc-cpp/Resolver7/main.cpp index 3265f99bc6b..da79a2ddce7 100644 --- a/regression/cbmc-cpp/Resolver7/main.cpp +++ b/regression/cbmc-cpp/Resolver7/main.cpp @@ -1,8 +1,14 @@ #include -extern const char hello []; +extern const char hello[]; -bool func(const char* str) {return true;} -bool func(char* ) {return false;} +bool func(const char *str) +{ + return true; +} +bool func(char *) +{ + return false; +} int main() { diff --git a/regression/cbmc-cpp/Resolver8/main.cpp b/regression/cbmc-cpp/Resolver8/main.cpp index ed94fd9f82d..bcc49040e50 100644 --- a/regression/cbmc-cpp/Resolver8/main.cpp +++ b/regression/cbmc-cpp/Resolver8/main.cpp @@ -1,9 +1,12 @@ #include -bool func() {return true;} +bool func() +{ + return true; +} bool func(int i) { - if(i==0) + if(i == 0) return false; return func(); } diff --git a/regression/cbmc-cpp/Resolver9/main.cpp b/regression/cbmc-cpp/Resolver9/main.cpp index 259d94951fb..07b41115b6c 100644 --- a/regression/cbmc-cpp/Resolver9/main.cpp +++ b/regression/cbmc-cpp/Resolver9/main.cpp @@ -3,7 +3,9 @@ struct A typedef int INT; }; -struct B: A{}; +struct B : A +{ +}; int main() { diff --git a/regression/cbmc-cpp/STL1/main.cpp b/regression/cbmc-cpp/STL1/main.cpp index 065d7d250e2..b233b675050 100644 --- a/regression/cbmc-cpp/STL1/main.cpp +++ b/regression/cbmc-cpp/STL1/main.cpp @@ -1,6 +1,6 @@ -#include #include #include +#include struct X { @@ -14,11 +14,11 @@ void test_vector() int_vector.push_back(1); int_vector.push_back(2); - assert(int_vector.front()==1); - assert(int_vector.back()==2); - assert(*int_vector.begin()==1); - it=int_vector.begin(); - assert(*it==1); + assert(int_vector.front() == 1); + assert(int_vector.back() == 2); + assert(*int_vector.begin() == 1); + it = int_vector.begin(); + assert(*it == 1); int_vector.pop_back(); int_vector.pop_back(); @@ -31,9 +31,9 @@ void test_list() int_list.push_back(1); int_list.push_back(2); - assert(int_list.front()==1); - assert(int_list.back()==2); - assert(*int_list.begin()==1); + assert(int_list.front() == 1); + assert(int_list.back() == 2); + assert(*int_list.begin() == 1); int_list.pop_back(); int_list.pop_back(); @@ -50,9 +50,15 @@ int main() { switch(nondet_int()) { - case 0: test_vector(); break; - case 1: test_list(); break; - case 2: test_set(); break; + case 0: + test_vector(); + break; + case 1: + test_list(); + break; + case 2: + test_set(); + break; default:; } diff --git a/regression/cbmc-cpp/STL2/main.cpp b/regression/cbmc-cpp/STL2/main.cpp index e382495df27..9d7efbb3e3f 100644 --- a/regression/cbmc-cpp/STL2/main.cpp +++ b/regression/cbmc-cpp/STL2/main.cpp @@ -15,5 +15,6 @@ int main() vector::iterator it; for(it = v.begin(); it != v.end(); it++) - if(*it == 10) v.erase(it); + if(*it == 10) + v.erase(it); } diff --git a/regression/cbmc-cpp/Static_Member1/main.cpp b/regression/cbmc-cpp/Static_Member1/main.cpp index 782d57862d7..2dba9c200fa 100644 --- a/regression/cbmc-cpp/Static_Member1/main.cpp +++ b/regression/cbmc-cpp/Static_Member1/main.cpp @@ -3,18 +3,18 @@ class B public: static int A1; static int A2; - static const int A3=20; + static const int A3 = 20; // the const ones are good as array size int table[A3]; }; -int B::A1=1; +int B::A1 = 1; int B::A2; int main() { - assert(B::A1==1); - assert(B::A2==0); // zero initializer - assert(B::A3==20); // in-class initializer + assert(B::A1 == 1); + assert(B::A2 == 0); // zero initializer + assert(B::A3 == 20); // in-class initializer } diff --git a/regression/cbmc-cpp/Static_Member_Function/main.cpp b/regression/cbmc-cpp/Static_Member_Function/main.cpp index d1334bb750d..8fde198dd7e 100644 --- a/regression/cbmc-cpp/Static_Member_Function/main.cpp +++ b/regression/cbmc-cpp/Static_Member_Function/main.cpp @@ -4,7 +4,9 @@ class t { public: int i; - static void f() { } + static void f() + { + } }; int main() diff --git a/regression/cbmc-cpp/Static_Method1/main.cpp b/regression/cbmc-cpp/Static_Method1/main.cpp index ede06ee3a3b..e9d34cc61b8 100644 --- a/regression/cbmc-cpp/Static_Method1/main.cpp +++ b/regression/cbmc-cpp/Static_Method1/main.cpp @@ -1,8 +1,14 @@ #include struct A { - static int Value(int v) {return v;} - static int Value(int v1, int v2){return 1;} + static int Value(int v) + { + return v; + } + static int Value(int v1, int v2) + { + return 1; + } }; int main() diff --git a/regression/cbmc-cpp/String_Literal1/main.cpp b/regression/cbmc-cpp/String_Literal1/main.cpp index 6ae4227fc5e..5f7314cc118 100644 --- a/regression/cbmc-cpp/String_Literal1/main.cpp +++ b/regression/cbmc-cpp/String_Literal1/main.cpp @@ -1,6 +1,8 @@ #include int main() { - const char *p="asd" "1"; - assert(p[3]=='1'); + const char *p = + "asd" + "1"; + assert(p[3] == '1'); } diff --git a/regression/cbmc-cpp/Templates1/main.cpp b/regression/cbmc-cpp/Templates1/main.cpp index 786f132d643..1a064f76321 100644 --- a/regression/cbmc-cpp/Templates1/main.cpp +++ b/regression/cbmc-cpp/Templates1/main.cpp @@ -7,7 +7,7 @@ void f(T x) template void eq(int z) { - assert(i==z); + assert(i == z); } int main() diff --git a/regression/cbmc-cpp/Templates10/main.cpp b/regression/cbmc-cpp/Templates10/main.cpp index 9bb4e571b40..0c8ca504e49 100644 --- a/regression/cbmc-cpp/Templates10/main.cpp +++ b/regression/cbmc-cpp/Templates10/main.cpp @@ -20,6 +20,6 @@ int func() int main() { assert(func() == 0); - assert(func() == 1); + assert(func() == 1); assert(func() == 2); } diff --git a/regression/cbmc-cpp/Templates11/main.cpp b/regression/cbmc-cpp/Templates11/main.cpp index f9c92cd02c6..34805dfeac7 100644 --- a/regression/cbmc-cpp/Templates11/main.cpp +++ b/regression/cbmc-cpp/Templates11/main.cpp @@ -1,10 +1,15 @@ #include template -bool func(T t) {return false;} - +bool func(T t) +{ + return false; +} template <> -bool func(int t) {return true;} +bool func(int t) +{ + return true; +} template struct Test @@ -19,5 +24,5 @@ struct Test int main() { Test t1; - assert(t1.f()==true); + assert(t1.f() == true); } diff --git a/regression/cbmc-cpp/Templates12/main.cpp b/regression/cbmc-cpp/Templates12/main.cpp index bf80fe75e48..6e6ff2ec632 100644 --- a/regression/cbmc-cpp/Templates12/main.cpp +++ b/regression/cbmc-cpp/Templates12/main.cpp @@ -1,10 +1,10 @@ #include -template +template struct A { T t; - bool eq(const A& ref) const + bool eq(const A &ref) const { return ref.t == t; } diff --git a/regression/cbmc-cpp/Templates13/main.cpp b/regression/cbmc-cpp/Templates13/main.cpp index 8fdf52bcaf2..6064f0c5df8 100644 --- a/regression/cbmc-cpp/Templates13/main.cpp +++ b/regression/cbmc-cpp/Templates13/main.cpp @@ -1,7 +1,7 @@ #include -template - -bool func() { +template +bool func() +{ return func(); } diff --git a/regression/cbmc-cpp/Templates14/main.cpp b/regression/cbmc-cpp/Templates14/main.cpp index 02c19157f9d..48a17aadd54 100644 --- a/regression/cbmc-cpp/Templates14/main.cpp +++ b/regression/cbmc-cpp/Templates14/main.cpp @@ -2,14 +2,16 @@ namespace n1 { - template - struct A{ - S a; - }; -} +template +struct A +{ + S a; +}; +} // namespace n1 template -struct B{ +struct B +{ n1::A b; }; @@ -17,5 +19,5 @@ int main() { B o; o.b.a = true; - assert(o.b.a==true); + assert(o.b.a == true); }; diff --git a/regression/cbmc-cpp/Templates16/main.cpp b/regression/cbmc-cpp/Templates16/main.cpp index c00b87198da..d682988cae4 100644 --- a/regression/cbmc-cpp/Templates16/main.cpp +++ b/regression/cbmc-cpp/Templates16/main.cpp @@ -9,7 +9,9 @@ struct A struct B { int i; - B():i(0) { } + B() : i(0) + { + } }; int main() diff --git a/regression/cbmc-cpp/Templates17/main.cpp b/regression/cbmc-cpp/Templates17/main.cpp index 7a537e5f5c0..dddf84bf27e 100644 --- a/regression/cbmc-cpp/Templates17/main.cpp +++ b/regression/cbmc-cpp/Templates17/main.cpp @@ -3,15 +3,19 @@ template struct A { bool b; - A(){} + A() + { + } }; template <> struct A; template <> -struct A{bool b;}; - +struct A +{ + bool b; +}; int main() { diff --git a/regression/cbmc-cpp/Templates18/main.cpp b/regression/cbmc-cpp/Templates18/main.cpp index 71520e99e0a..1ba26256fae 100644 --- a/regression/cbmc-cpp/Templates18/main.cpp +++ b/regression/cbmc-cpp/Templates18/main.cpp @@ -4,19 +4,20 @@ struct A; template struct A { - A(){} + A() + { + } }; - - template <> struct A { int b; - A(){} + A() + { + } }; - int main() { A a; diff --git a/regression/cbmc-cpp/Templates19/main.cpp b/regression/cbmc-cpp/Templates19/main.cpp index dc7a1b24a5d..4ca08cf3ba4 100644 --- a/regression/cbmc-cpp/Templates19/main.cpp +++ b/regression/cbmc-cpp/Templates19/main.cpp @@ -5,19 +5,17 @@ struct A T i; }; - template -T get_i(const A a1) +T get_i(const A a1) { return a1.i; } - int main() { A a2; a2.i = 10; - assert (a2.i == 10); + assert(a2.i == 10); assert(get_i(a2) == 10); get_i(a2); } diff --git a/regression/cbmc-cpp/Templates20/main.cpp b/regression/cbmc-cpp/Templates20/main.cpp index cfef1b4ae8c..677811efce0 100644 --- a/regression/cbmc-cpp/Templates20/main.cpp +++ b/regression/cbmc-cpp/Templates20/main.cpp @@ -2,34 +2,46 @@ struct A { - int i; - A():i(10) {} + int i; + A() : i(10) + { + } - private: - A(const A& a); // disabled +private: + A(const A &a); // disabled }; template -class B: A { - public: - T t; - B(){}; - int get_i() {return i;} - private: - B(B& b); // disabled -}; +class B : A +{ +public: + T t; + B(){}; + int get_i() + { + return i; + } +private: + B(B &b); // disabled +}; template <> -class B: A { - public: - bool b; - B():b(true) {} - int get_i() {return i;} - private: - B(B& b); // disabled -}; +class B : A +{ +public: + bool b; + B() : b(true) + { + } + int get_i() + { + return i; + } +private: + B(B &b); // disabled +}; B b1; int main() diff --git a/regression/cbmc-cpp/Templates21/main.cpp b/regression/cbmc-cpp/Templates21/main.cpp index ceef7e83d5a..346e386f485 100644 --- a/regression/cbmc-cpp/Templates21/main.cpp +++ b/regression/cbmc-cpp/Templates21/main.cpp @@ -1,12 +1,16 @@ #include template -struct A{ +struct A +{ T i; - void write(T i){this->i = i;} + void write(T i) + { + this->i = i; + } }; -struct B: A +struct B : A { void write(bool i) { diff --git a/regression/cbmc-cpp/Templates22/main.cpp b/regression/cbmc-cpp/Templates22/main.cpp index e4eb86b1988..9a3563f915e 100644 --- a/regression/cbmc-cpp/Templates22/main.cpp +++ b/regression/cbmc-cpp/Templates22/main.cpp @@ -1,9 +1,15 @@ #include -template -T func(T* t) {return *t;} +template +T func(T *t) +{ + return *t; +} -template -T func(T t) { return t;} +template +T func(T t) +{ + return t; +} int main() { diff --git a/regression/cbmc-cpp/Templates23/main.cpp b/regression/cbmc-cpp/Templates23/main.cpp index 3392ace01ce..d800b1ce7e9 100644 --- a/regression/cbmc-cpp/Templates23/main.cpp +++ b/regression/cbmc-cpp/Templates23/main.cpp @@ -9,7 +9,7 @@ struct A template struct B { - A<0+N> a; + A<0 + N> a; }; int main() diff --git a/regression/cbmc-cpp/Templates24/main.cpp b/regression/cbmc-cpp/Templates24/main.cpp index d0c9fd409a1..8b1835abdc5 100644 --- a/regression/cbmc-cpp/Templates24/main.cpp +++ b/regression/cbmc-cpp/Templates24/main.cpp @@ -1,12 +1,16 @@ #include template -struct A { +struct A +{ bool True(); }; template -bool A::True() { return true; } +bool A::True() +{ + return true; +} int main() { diff --git a/regression/cbmc-cpp/Templates25/main.cpp b/regression/cbmc-cpp/Templates25/main.cpp index fe3706ea34e..10ed4f3c53e 100644 --- a/regression/cbmc-cpp/Templates25/main.cpp +++ b/regression/cbmc-cpp/Templates25/main.cpp @@ -1,6 +1,9 @@ #include template -bool True() {return true;} +bool True() +{ + return true; +} int main() { diff --git a/regression/cbmc-cpp/Templates26/main.cpp b/regression/cbmc-cpp/Templates26/main.cpp index 5c1dd330770..e23afb7d00a 100644 --- a/regression/cbmc-cpp/Templates26/main.cpp +++ b/regression/cbmc-cpp/Templates26/main.cpp @@ -1,11 +1,12 @@ #include -template -struct A{ +template +struct A +{ int func(); }; -template +template int A::func() { return C; diff --git a/regression/cbmc-cpp/Templates27/main.cpp b/regression/cbmc-cpp/Templates27/main.cpp index e2edda31d08..69db147d85a 100644 --- a/regression/cbmc-cpp/Templates27/main.cpp +++ b/regression/cbmc-cpp/Templates27/main.cpp @@ -1,9 +1,12 @@ #include template -struct C { +struct C +{ T2 i; - C():i(10) { } + C() : i(10) + { + } }; template diff --git a/regression/cbmc-cpp/Templates28/main.cpp b/regression/cbmc-cpp/Templates28/main.cpp index 09eff76e555..88cec087894 100644 --- a/regression/cbmc-cpp/Templates28/main.cpp +++ b/regression/cbmc-cpp/Templates28/main.cpp @@ -3,13 +3,16 @@ template struct A { - int func(){return c1;} + int func() + { + return c1; + } }; template struct B { - A a; + A a; }; int main() diff --git a/regression/cbmc-cpp/Templates29/main.cpp b/regression/cbmc-cpp/Templates29/main.cpp index a79184a3292..7fae96891ca 100644 --- a/regression/cbmc-cpp/Templates29/main.cpp +++ b/regression/cbmc-cpp/Templates29/main.cpp @@ -1,16 +1,23 @@ -namespace N { +namespace N +{ template struct A { T i; - A(T i):i(i){} + A(T i) : i(i) + { + } }; -} +} // namespace N struct B : N::A { - B(int i): N::A(i) {} - void func() {} + B(int i) : N::A(i) + { + } + void func() + { + } int b; }; diff --git a/regression/cbmc-cpp/Templates3/main.cpp b/regression/cbmc-cpp/Templates3/main.cpp index 738d00faae7..7b47a7488e3 100644 --- a/regression/cbmc-cpp/Templates3/main.cpp +++ b/regression/cbmc-cpp/Templates3/main.cpp @@ -1,5 +1,5 @@ #include -template +template class int_array { public: @@ -7,7 +7,7 @@ class int_array int read(unsigned int x) { - assert(x - void set(T2 t){ this->t = t; } - + void set(T2 t) + { + this->t = t; + } }; int main() diff --git a/regression/cbmc-cpp/Templates31/main.cpp b/regression/cbmc-cpp/Templates31/main.cpp index 8032d62c7ab..9c95aaf4c21 100644 --- a/regression/cbmc-cpp/Templates31/main.cpp +++ b/regression/cbmc-cpp/Templates31/main.cpp @@ -3,13 +3,13 @@ template struct C { - static const char* k; + static const char *k; }; template -const char* C::k = "C"; +const char *C::k = "C"; -int main(int argc, char* argv[]) +int main(int argc, char *argv[]) { assert(C::k[0] == 'C'); assert(C::k[0] == 'C'); diff --git a/regression/cbmc-cpp/Templates32/main.cpp b/regression/cbmc-cpp/Templates32/main.cpp index fcbf2fc3a51..75755149407 100644 --- a/regression/cbmc-cpp/Templates32/main.cpp +++ b/regression/cbmc-cpp/Templates32/main.cpp @@ -1,18 +1,24 @@ #include -enum argt { ONE, TWO }; +enum argt +{ + ONE, + TWO +}; -template < argt V = TWO, class T = argt > +template class A { - public: - A():v(V) {} +public: + A() : v(V) + { + } T v; }; int main() { A<> a; - assert (a.v == TWO); + assert(a.v == TWO); return 0; } diff --git a/regression/cbmc-cpp/Templates34/main.cpp b/regression/cbmc-cpp/Templates34/main.cpp index 9d3a5092dfc..1c78edc92b4 100644 --- a/regression/cbmc-cpp/Templates34/main.cpp +++ b/regression/cbmc-cpp/Templates34/main.cpp @@ -1,9 +1,9 @@ // tag only, but with default parameter -template +template class my_template1; // body, but without default parameter -template +template class my_template1 { }; @@ -12,11 +12,11 @@ class my_template1 my_template1 some_instance1; // tag only, no default parameter -template +template class my_template2; // body, but without default parameter -template +template class my_template2 { }; diff --git a/regression/cbmc-cpp/Templates35/main.cpp b/regression/cbmc-cpp/Templates35/main.cpp index 4a8d353a501..42db024c9f6 100644 --- a/regression/cbmc-cpp/Templates35/main.cpp +++ b/regression/cbmc-cpp/Templates35/main.cpp @@ -1,30 +1,39 @@ #include -template +template class X { public: // the :: should trigger elaboration of Z - enum { e = T::e }; + enum + { + e = T::e + }; }; -template -class Y:public X +template +class Y : public X { public: - enum { e = X::e } ; + enum + { + e = X::e + }; }; -template +template class Z { public: - enum { e = 1 }; + enum + { + e = 1 + }; }; -Y > y; +Y> y; int main() { - assert(y.e==1); + assert(y.e == 1); } diff --git a/regression/cbmc-cpp/Templates4/main.cpp b/regression/cbmc-cpp/Templates4/main.cpp index a68a532ad2e..3ed3f0bbda2 100644 --- a/regression/cbmc-cpp/Templates4/main.cpp +++ b/regression/cbmc-cpp/Templates4/main.cpp @@ -7,23 +7,24 @@ class T1 template T2 f(T2 x) { - t=true; + t = true; return x; } void g() { - assert(2==f(2)); + assert(2 == f(2)); } void h() { - assert(3==f(3)); + assert(3 == f(3)); } - bool t; - T1():t(false) { } + T1() : t(false) + { + } }; int main() @@ -31,8 +32,8 @@ int main() T1 x; x.g(); - assert(1==x.f(1)); - assert(true==x.f(true)); - assert(x.t==true); + assert(1 == x.f(1)); + assert(true == x.f(true)); + assert(x.t == true); x.h(); } diff --git a/regression/cbmc-cpp/Templates5/main.cpp b/regression/cbmc-cpp/Templates5/main.cpp index 4b2178ac1d4..3b9c81064c0 100644 --- a/regression/cbmc-cpp/Templates5/main.cpp +++ b/regression/cbmc-cpp/Templates5/main.cpp @@ -1,18 +1,22 @@ -template class Y { +template +class Y +{ public: - void f() { - T::A++; // T::A is not a type name! + void f() + { + T::A++; // T::A is not a type name! } }; class B { - public: +public: static int A; }; int B::A = 0; -int main() { +int main() +{ Y y; y.f(); assert(B::A == 1); diff --git a/regression/cbmc-cpp/Templates6/main.cpp b/regression/cbmc-cpp/Templates6/main.cpp index 48169e50a7f..226fe7a7daa 100644 --- a/regression/cbmc-cpp/Templates6/main.cpp +++ b/regression/cbmc-cpp/Templates6/main.cpp @@ -6,13 +6,22 @@ template struct A { T t; - ~A() { g++; } + ~A() + { + g++; + } }; struct B { - B() { g=10; } - ~B() { g=20; } + B() + { + g = 10; + } + ~B() + { + g = 20; + } }; struct C @@ -20,7 +29,7 @@ struct C A a; }; -struct D: A +struct D : A { }; @@ -28,15 +37,15 @@ int main() { { C c; - assert(g==10); + assert(g == 10); } - assert(g==20); + assert(g == 20); { D d; - assert(g==10); + assert(g == 10); } - assert(g==20); + assert(g == 20); } diff --git a/regression/cbmc-cpp/Templates8/main.cpp b/regression/cbmc-cpp/Templates8/main.cpp index 69d92bb3a45..c7f9c5884fd 100644 --- a/regression/cbmc-cpp/Templates8/main.cpp +++ b/regression/cbmc-cpp/Templates8/main.cpp @@ -3,11 +3,14 @@ template struct A { - static T some_function(T v) { return v; } + static T some_function(T v) + { + return v; + } }; int main() { int v = A::some_function(10); - assert(v==10); + assert(v == 10); } diff --git a/regression/cbmc-cpp/Templates9/main.cpp b/regression/cbmc-cpp/Templates9/main.cpp index 8fd52766b70..42450cf8077 100644 --- a/regression/cbmc-cpp/Templates9/main.cpp +++ b/regression/cbmc-cpp/Templates9/main.cpp @@ -1,31 +1,36 @@ #include template -struct A { +struct A +{ static const int a = 0; }; // specialization to int template <> -struct A { +struct A +{ static const int a = 1; }; // specialization to char template <> -struct A { +struct A +{ static const int a = 2; }; // specialization to signed char template <> -struct A { +struct A +{ static const int a = 3; }; // specialization to unsigned char template <> -struct A { +struct A +{ static const int a = 4; }; diff --git a/regression/cbmc-cpp/Temporary1/main.cpp b/regression/cbmc-cpp/Temporary1/main.cpp index 62514af90eb..3aa7026d9e2 100644 --- a/regression/cbmc-cpp/Temporary1/main.cpp +++ b/regression/cbmc-cpp/Temporary1/main.cpp @@ -1,6 +1,6 @@ int f(const int &i) { - assert(i==1); + assert(i == 1); } int main() diff --git a/regression/cbmc-cpp/Temporary2/main.cpp b/regression/cbmc-cpp/Temporary2/main.cpp index ffeee9869c9..761d2344ca2 100644 --- a/regression/cbmc-cpp/Temporary2/main.cpp +++ b/regression/cbmc-cpp/Temporary2/main.cpp @@ -5,7 +5,7 @@ class X { } - X(int i):z(i) + X(int i) : z(i) { } @@ -16,7 +16,7 @@ void doit() { X x; - x=X(1); + x = X(1); } int main() diff --git a/regression/cbmc-cpp/Typecast1/main.cpp b/regression/cbmc-cpp/Typecast1/main.cpp index f510200b81e..6eaf5efae6e 100644 --- a/regression/cbmc-cpp/Typecast1/main.cpp +++ b/regression/cbmc-cpp/Typecast1/main.cpp @@ -2,5 +2,5 @@ int main() { const int *p; - p=(int *)0; + p = (int *)0; } diff --git a/regression/cbmc-cpp/Typecast2/main.cpp b/regression/cbmc-cpp/Typecast2/main.cpp index 8a7da0a44f6..25254de115d 100644 --- a/regression/cbmc-cpp/Typecast2/main.cpp +++ b/regression/cbmc-cpp/Typecast2/main.cpp @@ -3,7 +3,7 @@ struct myA int i; }; -struct myB: myA +struct myB : myA { int j; }; diff --git a/regression/cbmc-cpp/Typedef1/main.cpp b/regression/cbmc-cpp/Typedef1/main.cpp index 58c0005053e..0ccd096d5cd 100644 --- a/regression/cbmc-cpp/Typedef1/main.cpp +++ b/regression/cbmc-cpp/Typedef1/main.cpp @@ -1,18 +1,23 @@ #include -struct A { +struct A +{ int i; - A(int i):i(i){} + A(int i) : i(i) + { + } }; -class B: public A +class B : public A { - public: +public: typedef A _A; - B():_A(0){} + B() : _A(0) + { + } }; int main() { B b; - assert(b.i==0); + assert(b.i == 0); } diff --git a/regression/cbmc-cpp/Typedef2/main.cpp b/regression/cbmc-cpp/Typedef2/main.cpp index dd83b1ef5f2..2c1fe21194c 100644 --- a/regression/cbmc-cpp/Typedef2/main.cpp +++ b/regression/cbmc-cpp/Typedef2/main.cpp @@ -3,7 +3,7 @@ struct A int i; }; -struct B: A +struct B : A { typedef A _A; int i; @@ -22,6 +22,6 @@ int main() B b; b.i = 0; b.set(3); - assert(b.i==0); - assert(b.get()== 3); + assert(b.i == 0); + assert(b.get() == 3); } diff --git a/regression/cbmc-cpp/Typedef3/main.cpp b/regression/cbmc-cpp/Typedef3/main.cpp index 4e447e886cf..b3b511e63a4 100644 --- a/regression/cbmc-cpp/Typedef3/main.cpp +++ b/regression/cbmc-cpp/Typedef3/main.cpp @@ -1,7 +1,10 @@ struct B { - typedef struct { typedef int INT; } A; + typedef struct + { + typedef int INT; + } A; }; int main() diff --git a/regression/cbmc-cpp/Vector1/main.cpp b/regression/cbmc-cpp/Vector1/main.cpp index d8a07707392..ef7c4fbf29a 100644 --- a/regression/cbmc-cpp/Vector1/main.cpp +++ b/regression/cbmc-cpp/Vector1/main.cpp @@ -32,8 +32,8 @@ int main() { vector vec; vec.resize(0); - __CPROVER_assert(vec.size()==0, "vec size == 0"); -/* vec.push_back(2); + __CPROVER_assert(vec.size() == 0, "vec size == 0"); + /* vec.push_back(2); vec.push_back(1); vec.push_back(4); diff --git a/regression/cbmc-cpp/Zero_Initializer1/main.cpp b/regression/cbmc-cpp/Zero_Initializer1/main.cpp index f0c08a8babf..f5d70022383 100644 --- a/regression/cbmc-cpp/Zero_Initializer1/main.cpp +++ b/regression/cbmc-cpp/Zero_Initializer1/main.cpp @@ -6,7 +6,8 @@ struct int m; } s; -struct B { +struct B +{ static int x; }; @@ -16,9 +17,9 @@ char a[10]; int main() { - assert(g==0); - assert(p==0); - assert(s.m==0); - assert(a[3]==0); - assert(B::x==0); + assert(g == 0); + assert(p == 0); + assert(s.m == 0); + assert(a[3] == 0); + assert(B::x == 0); } diff --git a/regression/cbmc-cpp/argv1/main.cpp b/regression/cbmc-cpp/argv1/main.cpp index 4f08d930db1..d0543ffb9fe 100644 --- a/regression/cbmc-cpp/argv1/main.cpp +++ b/regression/cbmc-cpp/argv1/main.cpp @@ -1,10 +1,11 @@ #include -int main(int argc, char **argv) { +int main(int argc, char **argv) +{ char *x; // there must be at least one - x=argv[0]; + x = argv[0]; // last one must be NULL - assert(argv[argc]==0); + assert(argv[argc] == 0); } diff --git a/regression/cbmc-cpp/const_cast1/main.cpp b/regression/cbmc-cpp/const_cast1/main.cpp index deadf8e634c..e2d8d21827d 100644 --- a/regression/cbmc-cpp/const_cast1/main.cpp +++ b/regression/cbmc-cpp/const_cast1/main.cpp @@ -2,11 +2,11 @@ int main() { int i = 10; - const int& ri = i; - const_cast(ri) = 11; + const int &ri = i; + const_cast(ri) = 11; assert(i == 11); - const int* pi = &i; - *const_cast(pi) = 12; - assert(i==12); + const int *pi = &i; + *const_cast(pi) = 12; + assert(i == 12); } diff --git a/regression/cbmc-cpp/extractbits1/main.cpp b/regression/cbmc-cpp/extractbits1/main.cpp index f38e3d0247b..19089e10ba6 100644 --- a/regression/cbmc-cpp/extractbits1/main.cpp +++ b/regression/cbmc-cpp/extractbits1/main.cpp @@ -4,12 +4,12 @@ int main() { unsigned a = 6; unsigned b = 12; - unsigned a21 = a.range(2, 1); - unsigned b32 = b.range(3, 2); - assert( a21 == b32); + unsigned a21 = a.range(2, 1); + unsigned b32 = b.range(3, 2); + assert(a21 == b32); a.range(4, 3) = a.range(2, 1); - assert( a.range(4, 3) == b.range(3, 2)); + assert(a.range(4, 3) == b.range(3, 2)); a[0] = b.range(3, 3); bool a0 = a[0]; diff --git a/regression/cbmc-cpp/for1/main.cpp b/regression/cbmc-cpp/for1/main.cpp index 7c8935a0d6d..4e0e458b6f4 100644 --- a/regression/cbmc-cpp/for1/main.cpp +++ b/regression/cbmc-cpp/for1/main.cpp @@ -2,9 +2,8 @@ int main() { int i; - for(i=0; i<10; i++) + for(i = 0; i < 10; i++) { - assert(i<10); + assert(i < 10); } - } diff --git a/regression/cbmc-cpp/initialization1/main.cpp b/regression/cbmc-cpp/initialization1/main.cpp index ae1152193e3..4168d8e3ad1 100644 --- a/regression/cbmc-cpp/initialization1/main.cpp +++ b/regression/cbmc-cpp/initialization1/main.cpp @@ -2,23 +2,28 @@ int g1; class One { - public: +public: int o; - One():o(1){} + One() : o(1) + { + } }; class A { - public: +public: static One one; - A() { assert(one.o == 1); } + A() + { + assert(one.o == 1); + } }; One A::one; int main() { - assert(g1==0); + assert(g1 == 0); A a; } diff --git a/regression/cbmc-cpp/initialization2/main.cpp b/regression/cbmc-cpp/initialization2/main.cpp index 32f8ef37077..2ec70313f21 100644 --- a/regression/cbmc-cpp/initialization2/main.cpp +++ b/regression/cbmc-cpp/initialization2/main.cpp @@ -1,9 +1,12 @@ class A { - public: +public: int a; int b; - A(const A& r) {b =~r.b;} + A(const A &r) + { + b = ~r.b; + } A(){}; }; @@ -11,8 +14,8 @@ A a1; A a2 = a1; int main() { - assert(a1.a==0); - assert(a2.a==0); - assert(a1.b==0); - assert(a2.b==~0); + assert(a1.a == 0); + assert(a2.a == 0); + assert(a1.b == 0); + assert(a2.b == ~0); }; diff --git a/regression/cbmc-cpp/initialization3/main.cpp b/regression/cbmc-cpp/initialization3/main.cpp index c9c2b87b355..d30b53eb925 100644 --- a/regression/cbmc-cpp/initialization3/main.cpp +++ b/regression/cbmc-cpp/initialization3/main.cpp @@ -1,13 +1,15 @@ #include class A { - public: +public: int i; - A(){} + A() + { + } }; int main() { A a; - assert(a.i==0); + assert(a.i == 0); } diff --git a/regression/cbmc-cpp/initialization4/main.cpp b/regression/cbmc-cpp/initialization4/main.cpp index 6edc3266d8f..cc818f64b3f 100644 --- a/regression/cbmc-cpp/initialization4/main.cpp +++ b/regression/cbmc-cpp/initialization4/main.cpp @@ -10,6 +10,6 @@ const int a = gen(); int main() { - assert(a==1); - assert(b==0); + assert(a == 1); + assert(b == 0); } diff --git a/regression/cbmc-cpp/initialization5/main.cpp b/regression/cbmc-cpp/initialization5/main.cpp index 8add1dd8a09..3c5bf63f7cd 100644 --- a/regression/cbmc-cpp/initialization5/main.cpp +++ b/regression/cbmc-cpp/initialization5/main.cpp @@ -1,7 +1,8 @@ #include int a[__CPROVER::constant_infinity_uint]; -struct A { +struct A +{ int i[__CPROVER::constant_infinity_uint]; }; diff --git a/regression/cbmc-cpp/initialization6/main.cpp b/regression/cbmc-cpp/initialization6/main.cpp index a53fcd3d06b..79c8cd0acf3 100644 --- a/regression/cbmc-cpp/initialization6/main.cpp +++ b/regression/cbmc-cpp/initialization6/main.cpp @@ -2,5 +2,5 @@ extern "C" int g; int main() { - assert(g==0); + assert(g == 0); } diff --git a/regression/cbmc-cpp/namespace1/main.cpp b/regression/cbmc-cpp/namespace1/main.cpp index 484b3b14624..00b8367be9c 100644 --- a/regression/cbmc-cpp/namespace1/main.cpp +++ b/regression/cbmc-cpp/namespace1/main.cpp @@ -1,7 +1,7 @@ #include -namespace test_space { - +namespace test_space +{ int i; } @@ -9,22 +9,23 @@ int test_space::j; void f() { - ::test_space::i=0; + ::test_space::i = 0; } -namespace test_space { - void g() - { - i=1; - j=2; - } +namespace test_space +{ +void g() +{ + i = 1; + j = 2; } +} // namespace test_space using namespace test_space; int main() { f(); - j=1; - assert(i==0); + j = 1; + assert(i == 0); } diff --git a/regression/cbmc-cpp/namespace2/main.cpp b/regression/cbmc-cpp/namespace2/main.cpp index 0c4afaa17cc..5ff4e959545 100644 --- a/regression/cbmc-cpp/namespace2/main.cpp +++ b/regression/cbmc-cpp/namespace2/main.cpp @@ -2,13 +2,15 @@ namespace N { - template - struct A +template +struct A +{ + T t; + A(T t) : t(t) { - T t; - A(T t):t(t) { } - }; -} + } +}; +} // namespace N using N::A; diff --git a/regression/cbmc-cpp/namespace3/main.cpp b/regression/cbmc-cpp/namespace3/main.cpp index a70b2ec42a9..f7d44157fce 100644 --- a/regression/cbmc-cpp/namespace3/main.cpp +++ b/regression/cbmc-cpp/namespace3/main.cpp @@ -1,12 +1,15 @@ #include namespace std { - struct A {int i; }; -} +struct A +{ + int i; +}; +} // namespace std std::A a; -int main(int argc, char* argv[]) +int main(int argc, char *argv[]) { assert(a.i == 0); } diff --git a/regression/cbmc-cpp/new1/main.cpp b/regression/cbmc-cpp/new1/main.cpp index 605f3f4c710..599050824d4 100644 --- a/regression/cbmc-cpp/new1/main.cpp +++ b/regression/cbmc-cpp/new1/main.cpp @@ -3,9 +3,9 @@ void single_object() { int *p; - p=new int(2); + p = new int(2); - assert(*p==2); + assert(*p == 2); delete p; } @@ -14,9 +14,9 @@ void array() { int *q; - q=new int[100]; + q = new int[100]; - q[50]=1; + q[50] = 1; // _must_ use delete[] here delete[] q; diff --git a/regression/cbmc-cpp/operators/main.cpp b/regression/cbmc-cpp/operators/main.cpp index fddc9500c19..f5e2e67eed7 100644 --- a/regression/cbmc-cpp/operators/main.cpp +++ b/regression/cbmc-cpp/operators/main.cpp @@ -2,13 +2,36 @@ class I { int i; - public: - int get() {return i;} - void set(int i) {this->i=i;} - I& operator<<=(const I& ref) {i <<= ref.i; return *this;} - I& operator>>=(const I& ref) {i >>= ref.i; return *this;} - I& operator+=(const I& ref) {i += ref.i; return *this;} - I& operator-=(const I& ref){i -= ref.i; return *this;} + +public: + int get() + { + return i; + } + void set(int i) + { + this->i = i; + } + I &operator<<=(const I &ref) + { + i <<= ref.i; + return *this; + } + I &operator>>=(const I &ref) + { + i >>= ref.i; + return *this; + } + I &operator+=(const I &ref) + { + i += ref.i; + return *this; + } + I &operator-=(const I &ref) + { + i -= ref.i; + return *this; + } }; int main() @@ -16,14 +39,14 @@ int main() I i1, i2; i1.set(1); i2.set(2); - i2+=i1; - assert(i2.get()==3); - i2-=i1; - assert(i2.get()==2); + i2 += i1; + assert(i2.get() == 3); + i2 -= i1; + assert(i2.get() == 2); i2 <<= i1; - assert(i2.get()==4); + assert(i2.get() == 4); i2 >>= i1; - assert(i2.get()==2); + assert(i2.get() == 2); i2 = i1; - assert(i2.get()== 1); + assert(i2.get() == 1); } diff --git a/regression/cbmc-cpp/reinterpret_cast1/main.cpp b/regression/cbmc-cpp/reinterpret_cast1/main.cpp index a0c0dbe35a3..fcbf192f3f0 100644 --- a/regression/cbmc-cpp/reinterpret_cast1/main.cpp +++ b/regression/cbmc-cpp/reinterpret_cast1/main.cpp @@ -2,9 +2,9 @@ int main() { int v = 256; - int *i= &v; + int *i = &v; char *c = reinterpret_cast(i); *c == 0; int *j = reinterpret_cast(c); - assert(j==i); + assert(j == i); } diff --git a/regression/cbmc-cpp/reinterpret_cast2/main.cpp b/regression/cbmc-cpp/reinterpret_cast2/main.cpp index c4a91859383..ded02adc047 100644 --- a/regression/cbmc-cpp/reinterpret_cast2/main.cpp +++ b/regression/cbmc-cpp/reinterpret_cast2/main.cpp @@ -1,15 +1,14 @@ -struct A { - int* pi; - +struct A +{ + int *pi; }; int main() { A a; - const A* cpa = &a; + const A *cpa = &a; - int* ptr = reinterpret_cast(cpa->pi); + int *ptr = reinterpret_cast(cpa->pi); return 0; - } diff --git a/regression/cbmc-cpp/static_cast1/main.cpp b/regression/cbmc-cpp/static_cast1/main.cpp index 5214975b260..b7061f12681 100644 --- a/regression/cbmc-cpp/static_cast1/main.cpp +++ b/regression/cbmc-cpp/static_cast1/main.cpp @@ -2,9 +2,9 @@ int main() { // this is ok - double xd=2.3; + double xd = 2.3; - int xi=static_cast(xd); + int xi = static_cast(xd); - assert(xi==2); + assert(xi == 2); } diff --git a/regression/cbmc-cpp/static_cast3/main.cpp b/regression/cbmc-cpp/static_cast3/main.cpp index 73b507e6a4e..9f84bca968e 100644 --- a/regression/cbmc-cpp/static_cast3/main.cpp +++ b/regression/cbmc-cpp/static_cast3/main.cpp @@ -1,27 +1,28 @@ #include -struct A { +struct A +{ int i; }; -struct B { +struct B +{ char j; }; -struct C: A, B +struct C : A, B { bool k; }; - int main() { C c; c.k = true; - B& b = c; - assert((static_cast(b)).k == true); + B &b = c; + assert((static_cast(b)).k == true); - B* pb = &c; - static_cast(pb)->k = false; - assert(c.k==false); + B *pb = &c; + static_cast(pb)->k = false; + assert(c.k == false); } diff --git a/regression/cbmc-cpp/static_cast4/main.cpp b/regression/cbmc-cpp/static_cast4/main.cpp index 08ba6d6578c..65f653772de 100644 --- a/regression/cbmc-cpp/static_cast4/main.cpp +++ b/regression/cbmc-cpp/static_cast4/main.cpp @@ -1,8 +1,14 @@ -struct A { int i;}; -struct B: A { char j;}; +struct A +{ + int i; +}; +struct B : A +{ + char j; +}; int main() { A a; - const A& ra = a; - static_cast(ra); // not ok + const A &ra = a; + static_cast(ra); // not ok } diff --git a/regression/cbmc-cpp/static_cast5/main.cpp b/regression/cbmc-cpp/static_cast5/main.cpp index 3f3a1a03cfe..99b5ce3221f 100644 --- a/regression/cbmc-cpp/static_cast5/main.cpp +++ b/regression/cbmc-cpp/static_cast5/main.cpp @@ -4,18 +4,18 @@ struct A int i; }; -struct B: A +struct B : A { }; -int get_i1(A& a) +int get_i1(A &a) { - return static_cast(&a)->i; + return static_cast(&a)->i; } -int get_i2(A* pa) +int get_i2(A *pa) { - return static_cast(pa)->i; + return static_cast(pa)->i; } int main() @@ -23,8 +23,8 @@ int main() B b; b.i = 10; int tmp1 = get_i1(b); - assert(tmp1 == 10); + assert(tmp1 == 10); int tmp2 = get_i2(&b); - assert(tmp2 == 10); + assert(tmp2 == 10); } diff --git a/regression/cbmc-cpp/struct1/main.cpp b/regression/cbmc-cpp/struct1/main.cpp index 780ee20fd4c..ef5a0cbb897 100644 --- a/regression/cbmc-cpp/struct1/main.cpp +++ b/regression/cbmc-cpp/struct1/main.cpp @@ -8,15 +8,18 @@ struct IUnknown int f(IUnknown *This); -struct AA { +struct AA +{ int i; }; -struct BBB { +struct BBB +{ struct asd *p; } abc; -struct AAA { +struct AAA +{ struct asd *q; } fff; @@ -27,13 +30,12 @@ struct asd void f() { - abc.p=fff.q; + abc.p = fff.q; } int main() { int z; - z=sizeof(struct AA); - + z = sizeof(struct AA); } diff --git a/regression/cbmc-cpp/typecast_ambiguity3/main.cpp b/regression/cbmc-cpp/typecast_ambiguity3/main.cpp index ad03e797cf4..309e41c10e6 100644 --- a/regression/cbmc-cpp/typecast_ambiguity3/main.cpp +++ b/regression/cbmc-cpp/typecast_ambiguity3/main.cpp @@ -7,7 +7,7 @@ int main() // this is to parse as (bool(i)) & 0x1fff // and not as bool(i&0x1fff) - assert(sizeof((bool)(i) & 0x1fff)==sizeof(int)); + assert(sizeof((bool)(i)&0x1fff) == sizeof(int)); return 0; } diff --git a/regression/cbmc-cpp/typename1/main.cpp b/regression/cbmc-cpp/typename1/main.cpp index fe91f31bbc6..b7a027cdcf6 100644 --- a/regression/cbmc-cpp/typename1/main.cpp +++ b/regression/cbmc-cpp/typename1/main.cpp @@ -4,7 +4,8 @@ class X typedef int T; }; -template class Y +template +class Y { public: typename X::T g; @@ -12,7 +13,6 @@ template class Y void f() { typename X::T l; - } }; @@ -20,5 +20,5 @@ int main() { Y o; - o.g=1; + o.g = 1; } diff --git a/regression/cbmc-cpp/typename2/main.cpp b/regression/cbmc-cpp/typename2/main.cpp index 39dc405df5b..bfb62ca4f1f 100644 --- a/regression/cbmc-cpp/typename2/main.cpp +++ b/regression/cbmc-cpp/typename2/main.cpp @@ -1,13 +1,16 @@ -enum foo {NOT_AFFECTED, FATAL_AFFECT, WARNING}; +enum foo +{ + NOT_AFFECTED, + FATAL_AFFECT, + WARNING +}; -typedef struct { +typedef struct +{ foo SeverityType; } BitDatabaseRecordStruct; -const BitDatabaseRecordStruct BitDataBase [1] = -{ - {NOT_AFFECTED} -}; +const BitDatabaseRecordStruct BitDataBase[1] = {{NOT_AFFECTED}}; int main() { diff --git a/regression/cbmc-cpp/union1/main.cpp b/regression/cbmc-cpp/union1/main.cpp index f112a5e8653..cd5d25610c0 100644 --- a/regression/cbmc-cpp/union1/main.cpp +++ b/regression/cbmc-cpp/union1/main.cpp @@ -3,8 +3,7 @@ int main() { // anonymous union - union - { + union { int a; char b; }; diff --git a/regression/cbmc-cpp/virtual1/main.cpp b/regression/cbmc-cpp/virtual1/main.cpp index 540af426a25..1d402669650 100644 --- a/regression/cbmc-cpp/virtual1/main.cpp +++ b/regression/cbmc-cpp/virtual1/main.cpp @@ -5,7 +5,7 @@ class A public: virtual void f() { - g=1; + g = 1; } int mA; @@ -17,18 +17,18 @@ A::A() { } -class B: public A +class B : public A { public: B() { - mB=1; + mB = 1; } virtual void f() { - g=2; - mB=3; + g = 2; + mB = 3; } int mB; @@ -39,10 +39,10 @@ int main() B b; A *p; - p=&b; + p = &b; p->f(); - assert(g==2); - assert(b.mB==3); + assert(g == 2); + assert(b.mB == 3); } diff --git a/regression/cbmc-cpp/virtual10/main.cpp b/regression/cbmc-cpp/virtual10/main.cpp index c2d943c6b13..5347eb527d0 100644 --- a/regression/cbmc-cpp/virtual10/main.cpp +++ b/regression/cbmc-cpp/virtual10/main.cpp @@ -1,14 +1,20 @@ #include struct A { - virtual bool func() const {return true;} - virtual bool func() {return false;} + virtual bool func() const + { + return true; + } + virtual bool func() + { + return false; + } }; int main() { const A a1; - assert(a1.func()== true); + assert(a1.func() == true); A a2; - assert(a2.func()== false); + assert(a2.func() == false); } diff --git a/regression/cbmc-cpp/virtual11/main.cpp b/regression/cbmc-cpp/virtual11/main.cpp index 86d443c1d05..1631cc64be7 100644 --- a/regression/cbmc-cpp/virtual11/main.cpp +++ b/regression/cbmc-cpp/virtual11/main.cpp @@ -1,4 +1,5 @@ -struct A { +struct A +{ int i; virtual operator int() const { @@ -10,11 +11,11 @@ struct B : A { operator int() const { - return i+1; + return i + 1; } }; -int get_i(const A& a) +int get_i(const A &a) { return a; } @@ -23,5 +24,5 @@ int main() { B b; b.i = 10; - assert(get_i(b)==11); + assert(get_i(b) == 11); } diff --git a/regression/cbmc-cpp/virtual12/main.cpp b/regression/cbmc-cpp/virtual12/main.cpp index 51c6053ef29..4a2eb256e95 100644 --- a/regression/cbmc-cpp/virtual12/main.cpp +++ b/regression/cbmc-cpp/virtual12/main.cpp @@ -1,17 +1,31 @@ -struct A { - virtual int func(){return 1;} +struct A +{ + virtual int func() + { + return 1; + } }; -struct B: A { - int func(){return 2;} +struct B : A +{ + int func() + { + return 2; + } }; -int call_func1(A a) {return a.func();} -int call_func2(A& a) {return a.func();} +int call_func1(A a) +{ + return a.func(); +} +int call_func2(A &a) +{ + return a.func(); +} int main() { B b; - assert(call_func1(b)==1); - assert(call_func2(b)==2); + assert(call_func1(b) == 1); + assert(call_func2(b) == 2); } diff --git a/regression/cbmc-cpp/virtual13/main.cpp b/regression/cbmc-cpp/virtual13/main.cpp index ac89c2df9ee..5bd744f6fc3 100644 --- a/regression/cbmc-cpp/virtual13/main.cpp +++ b/regression/cbmc-cpp/virtual13/main.cpp @@ -1,12 +1,29 @@ -struct A { virtual int f(){ return 1; } }; -struct B { virtual int f(){ return 2;} }; -struct C: A, B { virtual int f(){ return 3;} }; - +struct A +{ + virtual int f() + { + return 1; + } +}; +struct B +{ + virtual int f() + { + return 2; + } +}; +struct C : A, B +{ + virtual int f() + { + return 3; + } +}; -int main(int argc, char* argv[]) +int main(int argc, char *argv[]) { C c; C c2(c); - assert(((A&)c2).f() == ((B&)c2).f()); + assert(((A &)c2).f() == ((B &)c2).f()); return 0; } diff --git a/regression/cbmc-cpp/virtual14/main.cpp b/regression/cbmc-cpp/virtual14/main.cpp index 699a2459ab2..79eb384e86f 100644 --- a/regression/cbmc-cpp/virtual14/main.cpp +++ b/regression/cbmc-cpp/virtual14/main.cpp @@ -5,39 +5,38 @@ struct T class A { - public: +public: int a; - virtual void f( T t1, T& t2) + virtual void f(T t1, T &t2) { t2.x = t1.x; t2.y = t1.y; } }; - class B { - public: +public: int b; - virtual void f(T t1, T& t2) + virtual void f(T t1, T &t2) { t2.x = t1.y; t2.y = t1.x; } }; -class C: public A , public B +class C : public A, public B { public: - virtual void f(T t1, T& t2) + virtual void f(T t1, T &t2) { - t2.x = t1.x+1; - t2.y = t1.y+1; + t2.x = t1.x + 1; + t2.y = t1.y + 1; } }; -int main(int argc, char* argv[]) +int main(int argc, char *argv[]) { A a; B b; @@ -56,19 +55,18 @@ int main(int argc, char* argv[]) t2.x = t2.y = 0; c.f(t1, t2); - assert(t2.x == t1.x+1 && t2.y == t1.y+1); + assert(t2.x == t1.x + 1 && t2.y == t1.y + 1); t2.x = t2.y = 0; - ((A*)&c)->f(t1, t2); - assert(t2.x == t1.x+1 && t2.y == t1.y+1); + ((A *)&c)->f(t1, t2); + assert(t2.x == t1.x + 1 && t2.y == t1.y + 1); t2.x = t2.y = 0; - c.b = 1; - assert(((B*)&c)->b == 1); + assert(((B *)&c)->b == 1); - ((B*)&c)->f(t1, t2); - assert(t2.x == t1.x+1 && t2.y == t1.y+1); + ((B *)&c)->f(t1, t2); + assert(t2.x == t1.x + 1 && t2.y == t1.y + 1); t2.x = t2.y = 0; return 0; diff --git a/regression/cbmc-cpp/virtual15/main.cpp b/regression/cbmc-cpp/virtual15/main.cpp index db02c2bdccf..578b4d9599e 100644 --- a/regression/cbmc-cpp/virtual15/main.cpp +++ b/regression/cbmc-cpp/virtual15/main.cpp @@ -2,35 +2,46 @@ // #include struct A { - virtual int f() {return 1;} - virtual int g(){return 1;} + virtual int f() + { + return 1; + } + virtual int g() + { + return 1; + } }; -struct B: A +struct B : A { - int f(){return 2;} + int f() + { + return 2; + } }; -struct C: B +struct C : B { }; -struct D: C +struct D : C { - int g(){return 3;} + int g() + { + return 3; + } }; - int main() { D d; assert(d.f() == 2); assert(d.g() == 3); - assert(((C*)(&d))->f() == 2); - assert(((B*)(&d))->g() == 3); - assert(((B*)(&d))->f() == 2); - assert(((B*)(&d))->g() == 3); - assert(((A*)(&d))->f() == 2); - assert(((A*)(&d))->g() == 3); + assert(((C *)(&d))->f() == 2); + assert(((B *)(&d))->g() == 3); + assert(((B *)(&d))->f() == 2); + assert(((B *)(&d))->g() == 3); + assert(((A *)(&d))->f() == 2); + assert(((A *)(&d))->g() == 3); } diff --git a/regression/cbmc-cpp/virtual2/main.cpp b/regression/cbmc-cpp/virtual2/main.cpp index d36385dba76..dd4638dde11 100644 --- a/regression/cbmc-cpp/virtual2/main.cpp +++ b/regression/cbmc-cpp/virtual2/main.cpp @@ -11,11 +11,11 @@ class X int X::f() { - g=10; - m=1; + g = 10; + m = 1; } -class Y:public X +class Y : public X { }; @@ -25,5 +25,5 @@ int main() y.f(); - assert(g==10); + assert(g == 10); } diff --git a/regression/cbmc-cpp/virtual3/main.cpp b/regression/cbmc-cpp/virtual3/main.cpp index f2ebce99677..bcdf1c6cf6e 100644 --- a/regression/cbmc-cpp/virtual3/main.cpp +++ b/regression/cbmc-cpp/virtual3/main.cpp @@ -1,17 +1,20 @@ -class B{ - public: - virtual int f(){ return 0; } +class B +{ +public: + virtual int f() + { + return 0; + } }; - -void toBr(B& b) +void toBr(B &b) { - assert(b.f()==0); + assert(b.f() == 0); } int main() { B b; -// assert(b.f()==0); + // assert(b.f()==0); toBr(b); } diff --git a/regression/cbmc-cpp/virtual4/main.cpp b/regression/cbmc-cpp/virtual4/main.cpp index 63b3173dde1..86b2b517d64 100644 --- a/regression/cbmc-cpp/virtual4/main.cpp +++ b/regression/cbmc-cpp/virtual4/main.cpp @@ -3,18 +3,24 @@ class B { public: - virtual int f() { return 0; } + virtual int f() + { + return 0; + } }; -class A: public B +class A : public B { public: - int f() { return 1; } + int f() + { + return 1; + } }; int main() { A a; - assert(a.A::f()==1); - assert(a.B::f()==0); + assert(a.A::f() == 1); + assert(a.B::f() == 0); } diff --git a/regression/cbmc-cpp/virtual5/main.cpp b/regression/cbmc-cpp/virtual5/main.cpp index cb138ba2819..81ae3afbed2 100644 --- a/regression/cbmc-cpp/virtual5/main.cpp +++ b/regression/cbmc-cpp/virtual5/main.cpp @@ -1,19 +1,25 @@ class B { public: - virtual int f() const {return 0;} + virtual int f() const + { + return 0; + } }; -class A: public B +class A : public B { public: - int f() {return 1;} + int f() + { + return 1; + } }; int main() { A a; - B b = (B) a; - assert(b.f()==0); - assert(a.f()==1); + B b = (B)a; + assert(b.f() == 0); + assert(a.f() == 1); } diff --git a/regression/cbmc-cpp/virtual6/main.cpp b/regression/cbmc-cpp/virtual6/main.cpp index 82a4fbd0e08..6cc8a0bf814 100644 --- a/regression/cbmc-cpp/virtual6/main.cpp +++ b/regression/cbmc-cpp/virtual6/main.cpp @@ -6,7 +6,7 @@ class B virtual int f() const; }; -class A: public B +class A : public B { public: int f() const; @@ -17,19 +17,17 @@ int B::f() const return 0; } - int A::f() const { return 1; } - int main() { A a; - B b = (B) a; - B* pB = (B*) &a; - assert(b.f()==0); - assert(pB->f()==1); - assert(a.f()==1); + B b = (B)a; + B *pB = (B *)&a; + assert(b.f() == 0); + assert(pB->f() == 1); + assert(a.f() == 1); } diff --git a/regression/cbmc-cpp/virtual7/main.cpp b/regression/cbmc-cpp/virtual7/main.cpp index baebdf96571..e6381faab8e 100644 --- a/regression/cbmc-cpp/virtual7/main.cpp +++ b/regression/cbmc-cpp/virtual7/main.cpp @@ -1,17 +1,23 @@ class A { - public: - virtual int number(){return 0;} +public: + virtual int number() + { + return 0; + } }; -class B: A +class B : A { - public: - int number() {return 1;} +public: + int number() + { + return 1; + } void test() { int n1 = number(); - assert(n1==1); + assert(n1 == 1); int n2 = ::A::number(); assert(n2 == 0); } diff --git a/regression/cbmc-cpp/virtual8/main.cpp b/regression/cbmc-cpp/virtual8/main.cpp index 8db08084016..82b0b344fa8 100644 --- a/regression/cbmc-cpp/virtual8/main.cpp +++ b/regression/cbmc-cpp/virtual8/main.cpp @@ -3,20 +3,26 @@ int g2; class A { - public: - virtual ~A(){g1 = g2+1;} +public: + virtual ~A() + { + g1 = g2 + 1; + } }; -class B: public A +class B : public A { - public: - ~B(){g2 = 1;} +public: + ~B() + { + g2 = 1; + } }; int main() { - A* pA = new B(); + A *pA = new B(); delete pA; - assert(g2==1); - assert(g1==2); + assert(g2 == 1); + assert(g1 == 2); } diff --git a/regression/cbmc-cpp/virtual9/main.cpp b/regression/cbmc-cpp/virtual9/main.cpp index 152f5998e77..6d1718c7f1f 100644 --- a/regression/cbmc-cpp/virtual9/main.cpp +++ b/regression/cbmc-cpp/virtual9/main.cpp @@ -1,7 +1,10 @@ #include struct A { - virtual int& func(int& i){return i;} + virtual int &func(int &i) + { + return i; + } }; int main() @@ -11,5 +14,5 @@ int main() int j = 1; a.func(i) = j; - assert(i==j); + assert(i == j); } diff --git a/regression/cpp/Address_of_Method4/main.cpp b/regression/cpp/Address_of_Method4/main.cpp index b5eac2dbbbc..a7e3d0b5989 100644 --- a/regression/cpp/Address_of_Method4/main.cpp +++ b/regression/cpp/Address_of_Method4/main.cpp @@ -2,7 +2,6 @@ struct x { void f(); int f(int); - }; void x::f() @@ -14,11 +13,9 @@ int x::f(int i) return i; } - - int main() { - int (x::*pf) (int) = &x::f; -// x x1; -// assert((x1.*pf)(0) == 0); + int (x::*pf)(int) = &x::f; + // x x1; + // assert((x1.*pf)(0) == 0); } diff --git a/regression/cpp/Protection1/main.cpp b/regression/cpp/Protection1/main.cpp index 62a47be4651..6b0aeed9b78 100644 --- a/regression/cpp/Protection1/main.cpp +++ b/regression/cpp/Protection1/main.cpp @@ -1,12 +1,15 @@ class A { int i; - A(int i):i(i) {} - private: + A(int i) : i(i) + { + } + +private: A(); // disabled }; -class B: A +class B : A { }; diff --git a/regression/cpp/Templates15/main.cpp b/regression/cpp/Templates15/main.cpp index 6e925db41b7..2e9bdb72efc 100644 --- a/regression/cpp/Templates15/main.cpp +++ b/regression/cpp/Templates15/main.cpp @@ -1,5 +1,6 @@ template -struct A { +struct A +{ int a; }; diff --git a/regression/cpp/Templates33/main.cpp b/regression/cpp/Templates33/main.cpp index cde6ee9363a..de1a9eb466c 100644 --- a/regression/cpp/Templates33/main.cpp +++ b/regression/cpp/Templates33/main.cpp @@ -1,4 +1,4 @@ -template +template class X { public: From f9f33dc7ec7a87fc4abd8503681dc85a9cebaa9b Mon Sep 17 00:00:00 2001 From: Thomas Spriggs Date: Thu, 18 Mar 2021 11:20:21 +0000 Subject: [PATCH 09/25] Increase version number to 5.26.0 As part of the regular release process. --- src/config.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.inc b/src/config.inc index 33843429dc4..eaac614a3f7 100644 --- a/src/config.inc +++ b/src/config.inc @@ -76,7 +76,7 @@ endif OSX_IDENTITY="Developer ID Application: Daniel Kroening" # Detailed version information -CBMC_VERSION = 5.25.0 +CBMC_VERSION = 5.26.0 # Use the CUDD library for BDDs, can be installed using `make -C src cudd-download` # CUDD = ../../cudd-3.0.0 From 502040fdc5db87098f50bdf008752519c09b9827 Mon Sep 17 00:00:00 2001 From: "Felipe R. Monteiro" Date: Thu, 18 Mar 2021 19:50:57 +0000 Subject: [PATCH 10/25] Properly rename regression tests from cbmc-cpp Commit 879afa2 introduced tests that result in name conflicts on non-case-sensitive file systems. Signed-off-by: Felipe R. Monteiro --- regression/cbmc-cpp/{Lvalue1 => lvalue2}/main.cpp | 0 regression/cbmc-cpp/{Lvalue1 => lvalue2}/test.desc | 0 regression/cbmc-cpp/{Typedef1 => typedef4}/main.cpp | 0 regression/cbmc-cpp/{Typedef1 => typedef4}/test.desc | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename regression/cbmc-cpp/{Lvalue1 => lvalue2}/main.cpp (100%) rename regression/cbmc-cpp/{Lvalue1 => lvalue2}/test.desc (100%) rename regression/cbmc-cpp/{Typedef1 => typedef4}/main.cpp (100%) rename regression/cbmc-cpp/{Typedef1 => typedef4}/test.desc (100%) diff --git a/regression/cbmc-cpp/Lvalue1/main.cpp b/regression/cbmc-cpp/lvalue2/main.cpp similarity index 100% rename from regression/cbmc-cpp/Lvalue1/main.cpp rename to regression/cbmc-cpp/lvalue2/main.cpp diff --git a/regression/cbmc-cpp/Lvalue1/test.desc b/regression/cbmc-cpp/lvalue2/test.desc similarity index 100% rename from regression/cbmc-cpp/Lvalue1/test.desc rename to regression/cbmc-cpp/lvalue2/test.desc diff --git a/regression/cbmc-cpp/Typedef1/main.cpp b/regression/cbmc-cpp/typedef4/main.cpp similarity index 100% rename from regression/cbmc-cpp/Typedef1/main.cpp rename to regression/cbmc-cpp/typedef4/main.cpp diff --git a/regression/cbmc-cpp/Typedef1/test.desc b/regression/cbmc-cpp/typedef4/test.desc similarity index 100% rename from regression/cbmc-cpp/Typedef1/test.desc rename to regression/cbmc-cpp/typedef4/test.desc From 5f1b66a30d59e026c55448a9cef669ef3214d7ce Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Thu, 18 Mar 2021 00:41:43 +0000 Subject: [PATCH 11/25] Add cbmc --incremental regression tests as FUTURE We have these tests in the repository, but did not include them in either Makefile or CMake configurations. They can't work right now as the "--incremental" command-line option doesn't yet exist, thus marking them as "FUTURE." --- regression/CMakeLists.txt | 3 +++ regression/Makefile | 3 +++ regression/array-refinement-with-incr/Array_UF1/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF10/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF11/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF12/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF13/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF14/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF15/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF16/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF17/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF18/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF19/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF2/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF20/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF3/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF4/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF5/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF6/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF7/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF8/test.desc | 2 +- regression/array-refinement-with-incr/Array_UF9/test.desc | 2 +- regression/array-refinement-with-incr/CMakeLists.txt | 3 +++ regression/cbmc-incr/Ackermann02_false1/test.desc | 2 +- regression/cbmc-incr/MultCommutative_true1/test.desc | 2 +- regression/cbmc-incr/alarm1/test.desc | 2 +- regression/cbmc-incr/alarm2/test.desc | 2 +- regression/cbmc-incr/alarm3/test.desc | 2 +- regression/cbmc-incr/arrays2/test.desc | 2 +- regression/cbmc-incr/arrays3/test.desc | 2 +- regression/cbmc-incr/arrays4/test.desc | 2 +- regression/cbmc-incr/arrays5/test.desc | 2 +- regression/cbmc-incr/assertion-after-loop1/test.desc | 2 +- regression/cbmc-incr/assertion-after-loop2/test.desc | 2 +- regression/cbmc-incr/cruise1/test.desc | 2 +- regression/cbmc-incr/cruise2/test.desc | 2 +- regression/cbmc-incr/email_spec27_product31_false1/test.desc | 2 +- regression/cbmc-incr/induction1/test.desc | 2 +- regression/cbmc-incr/magic1/test.desc | 2 +- regression/cbmc-incr/minmaxunwind1/test.desc | 2 +- regression/cbmc-incr/minmaxunwind2/test.desc | 2 +- regression/cbmc-incr/minmaxunwind3/test.desc | 2 +- regression/cbmc-incr/minmaxunwind4/test.desc | 2 +- regression/cbmc-incr/minmaxunwind5/test.desc | 2 +- regression/cbmc-incr/moreasserts1/test.desc | 2 +- regression/cbmc-incr/moreloops1/test.desc | 2 +- regression/cbmc-incr/nestedloop1/test.desc | 2 +- regression/cbmc-incr/no-unwinding-assertion1/test.desc | 2 +- regression/cbmc-incr/recursion1/test.desc | 2 +- regression/cbmc-incr/recursion2/test.desc | 2 +- regression/cbmc-incr/simpleloop1/test.desc | 2 +- regression/cbmc-incr/simpleloop2/test.desc | 2 +- regression/cbmc-incr/simpleloop3/test.desc | 2 +- regression/cbmc-incr/simpleloopmax1/test.desc | 2 +- regression/cbmc-incr/simpleloopmax2/test.desc | 2 +- regression/cbmc-incr/simplifier1/test.desc | 2 +- regression/cbmc-incr/simplifier2/test.desc | 2 +- regression/cbmc-incr/simplifier3/test.desc | 2 +- regression/cbmc-incr/sum_array_true1/test.desc | 2 +- regression/cbmc-incr/unwind-not-forever1/test.desc | 2 +- regression/cbmc-incr/unwind-not-forever2/test.desc | 2 +- regression/cbmc-incr/unwinding-assertion1/test.desc | 2 +- .../test.desc | 2 +- regression/cbmc-with-incr/ASHR1/test.desc | 2 +- regression/cbmc-with-incr/Address_of1/test.desc | 2 +- regression/cbmc-with-incr/Address_of2/test.desc | 2 +- regression/cbmc-with-incr/Anonymous_Struct1/test.desc | 2 +- regression/cbmc-with-incr/Anonymous_Struct2/test.desc | 2 +- regression/cbmc-with-incr/Anonymous_Struct3/test.desc | 2 +- regression/cbmc-with-incr/Array_Initialization1/test.desc | 2 +- regression/cbmc-with-incr/Array_Initialization2/test.desc | 2 +- regression/cbmc-with-incr/Array_Initialization3/test.desc | 2 +- regression/cbmc-with-incr/Array_UF/test.desc | 2 +- regression/cbmc-with-incr/Assumption1/test.desc | 2 +- regression/cbmc-with-incr/BV_Arithmetic1/test.desc | 2 +- regression/cbmc-with-incr/BV_Arithmetic2/test.desc | 2 +- regression/cbmc-with-incr/BV_Arithmetic3/test.desc | 2 +- regression/cbmc-with-incr/BV_Arithmetic4/test.desc | 2 +- regression/cbmc-with-incr/BV_Arithmetic5/test.desc | 2 +- regression/cbmc-with-incr/BV_Arithmetic6/test.desc | 2 +- regression/cbmc-with-incr/Bitfields1/test.desc | 2 +- regression/cbmc-with-incr/Bitfields2/test.desc | 2 +- regression/cbmc-with-incr/Bool1/test.desc | 2 +- regression/cbmc-with-incr/Bool2/test.desc | 2 +- regression/cbmc-with-incr/Bool3/test.desc | 2 +- regression/cbmc-with-incr/Bool4/test.desc | 2 +- regression/cbmc-with-incr/Boolean_Guards1/test.desc | 2 +- regression/cbmc-with-incr/CMakeLists.txt | 3 +++ regression/cbmc-with-incr/Computed-Goto1/test.desc | 2 +- regression/cbmc-with-incr/Division1/test.desc | 2 +- regression/cbmc-with-incr/Division2/test.desc | 2 +- .../cbmc-with-incr/Double-to-float-no-simp1-fix1/test.desc | 2 +- .../cbmc-with-incr/Double-to-float-no-simp1-fix2/test.desc | 2 +- regression/cbmc-with-incr/Double-to-float-no-simp1/test.desc | 2 +- .../cbmc-with-incr/Double-to-float-with-simp1/test.desc | 2 +- regression/cbmc-with-incr/Ellipsis1/test.desc | 2 +- regression/cbmc-with-incr/Ellipsis2/test.desc | 2 +- regression/cbmc-with-incr/Endianness1/test.desc | 2 +- regression/cbmc-with-incr/Endianness2/test.desc | 2 +- regression/cbmc-with-incr/Endianness3/test.desc | 2 +- regression/cbmc-with-incr/Endianness4/test.desc | 2 +- regression/cbmc-with-incr/Endianness5/test.desc | 2 +- regression/cbmc-with-incr/Endianness6/test.desc | 2 +- regression/cbmc-with-incr/Endianness7/test.desc | 2 +- regression/cbmc-with-incr/Endianness8/test.desc | 2 +- regression/cbmc-with-incr/Endianness9/test.desc | 2 +- regression/cbmc-with-incr/Error_Label1/test.desc | 2 +- regression/cbmc-with-incr/Error_Label2/test.desc | 2 +- regression/cbmc-with-incr/Error_Label3/test.desc | 2 +- regression/cbmc-with-incr/Eval_Order1/test.desc | 2 +- regression/cbmc-with-incr/Exceptions1/test.desc | 2 +- regression/cbmc-with-incr/Failing_Assert1/test.desc | 2 +- regression/cbmc-with-incr/Fixedbv1/test.desc | 2 +- regression/cbmc-with-incr/Fixedbv2/test.desc | 2 +- regression/cbmc-with-incr/Fixedbv3/test.desc | 2 +- regression/cbmc-with-incr/Fixedbv4/test.desc | 2 +- regression/cbmc-with-incr/Fixedbv5/test.desc | 2 +- regression/cbmc-with-incr/Fixedbv6/test.desc | 2 +- regression/cbmc-with-incr/Fixedbv7/test.desc | 2 +- regression/cbmc-with-incr/Float-Rounding1/test.desc | 2 +- regression/cbmc-with-incr/Float-Rounding2/test.desc | 2 +- .../cbmc-with-incr/Float-data-dependent-rounding/test.desc | 2 +- regression/cbmc-with-incr/Float-div1/test.desc | 2 +- regression/cbmc-with-incr/Float-flags-no-simp1/test.desc | 2 +- regression/cbmc-with-incr/Float-flags-simp1/test.desc | 2 +- regression/cbmc-with-incr/Float-no-simp1/test.desc | 2 +- regression/cbmc-with-incr/Float-no-simp2/test.desc | 2 +- regression/cbmc-with-incr/Float-no-simp3/test.desc | 2 +- regression/cbmc-with-incr/Float-no-simp4/test.desc | 2 +- regression/cbmc-with-incr/Float-no-simp5/test.desc | 2 +- regression/cbmc-with-incr/Float-no-simp6/test.desc | 2 +- regression/cbmc-with-incr/Float-no-simp7/test.desc | 2 +- regression/cbmc-with-incr/Float-no-simp8/test.desc | 2 +- regression/cbmc-with-incr/Float-no-simp9/test.desc | 2 +- regression/cbmc-with-incr/Float-overflow1/test.desc | 2 +- regression/cbmc-with-incr/Float-overflow2/test.desc | 2 +- regression/cbmc-with-incr/Float-to-double1/test.desc | 2 +- regression/cbmc-with-incr/Float-to-double2/test.desc | 2 +- regression/cbmc-with-incr/Float-zero-sum1/test.desc | 2 +- regression/cbmc-with-incr/Float1/test.desc | 2 +- regression/cbmc-with-incr/Float11/test.desc | 2 +- regression/cbmc-with-incr/Float12/test.desc | 2 +- regression/cbmc-with-incr/Float13/test.desc | 2 +- regression/cbmc-with-incr/Float14/test.desc | 2 +- regression/cbmc-with-incr/Float18/test.desc | 2 +- regression/cbmc-with-incr/Float19/test.desc | 2 +- regression/cbmc-with-incr/Float2/test.desc | 2 +- regression/cbmc-with-incr/Float20/test.desc | 2 +- regression/cbmc-with-incr/Float21/test.desc | 2 +- regression/cbmc-with-incr/Float22/test.desc | 2 +- regression/cbmc-with-incr/Float3/test.desc | 2 +- regression/cbmc-with-incr/Float4/test.desc | 2 +- regression/cbmc-with-incr/Float5/test.desc | 2 +- regression/cbmc-with-incr/Float6/test.desc | 2 +- regression/cbmc-with-incr/Float7/test.desc | 2 +- regression/cbmc-with-incr/Float8/test.desc | 2 +- regression/cbmc-with-incr/Float_lib1/test.desc | 2 +- regression/cbmc-with-incr/Float_lib2/test.desc | 2 +- regression/cbmc-with-incr/Free1/test.desc | 2 +- regression/cbmc-with-incr/Free2/test.desc | 2 +- regression/cbmc-with-incr/Free3/test.desc | 4 ++-- regression/cbmc-with-incr/Free4/test.desc | 4 ++-- regression/cbmc-with-incr/Function-KnR1/test.desc | 2 +- regression/cbmc-with-incr/Function1/test.desc | 2 +- regression/cbmc-with-incr/Function10/test.desc | 2 +- regression/cbmc-with-incr/Function11/test.desc | 2 +- regression/cbmc-with-incr/Function12/test.desc | 2 +- regression/cbmc-with-incr/Function13/test.desc | 2 +- regression/cbmc-with-incr/Function2/test.desc | 2 +- regression/cbmc-with-incr/Function3/test.desc | 2 +- regression/cbmc-with-incr/Function4/test.desc | 2 +- regression/cbmc-with-incr/Function5/test.desc | 2 +- regression/cbmc-with-incr/Function6/test.desc | 2 +- regression/cbmc-with-incr/Function7/test.desc | 2 +- regression/cbmc-with-incr/Function8/test.desc | 2 +- regression/cbmc-with-incr/Function9/test.desc | 2 +- regression/cbmc-with-incr/Function_Eval_Order2/test.desc | 2 +- regression/cbmc-with-incr/Function_Parameters1/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer1/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer10/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer11/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer12/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer13/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer14/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer15/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer16/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer17/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer2/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer3/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer4/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer5/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer6/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer7/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer8/test.desc | 2 +- regression/cbmc-with-incr/Function_Pointer9/test.desc | 2 +- regression/cbmc-with-incr/Global_Initialization1/test.desc | 2 +- regression/cbmc-with-incr/Global_Initialization2/test.desc | 2 +- regression/cbmc-with-incr/Initialization1/test.desc | 2 +- regression/cbmc-with-incr/Initialization2/test.desc | 2 +- regression/cbmc-with-incr/Initialization3/test.desc | 2 +- regression/cbmc-with-incr/Initialization5/test.desc | 2 +- regression/cbmc-with-incr/Initialization6/test.desc | 2 +- regression/cbmc-with-incr/Initialization7/test.desc | 2 +- regression/cbmc-with-incr/Linking1/test.desc | 2 +- regression/cbmc-with-incr/Linking2/test.desc | 2 +- regression/cbmc-with-incr/Linking3/test.desc | 2 +- regression/cbmc-with-incr/Linking4/test.desc | 2 +- regression/cbmc-with-incr/Local_out_of_scope1/test.desc | 2 +- regression/cbmc-with-incr/Malloc13/test.desc | 2 +- regression/cbmc-with-incr/Malloc14/test.desc | 2 +- regression/cbmc-with-incr/Malloc15/test.desc | 2 +- regression/cbmc-with-incr/Malloc16/test.desc | 2 +- regression/cbmc-with-incr/Malloc17/test.desc | 2 +- regression/cbmc-with-incr/Malloc18/test.desc | 2 +- regression/cbmc-with-incr/Malloc19/test.desc | 2 +- regression/cbmc-with-incr/Malloc20/test.desc | 2 +- regression/cbmc-with-incr/Memmove1/test.desc | 2 +- regression/cbmc-with-incr/Memory_leak1/test.desc | 2 +- regression/cbmc-with-incr/Memory_leak2/test.desc | 2 +- regression/cbmc-with-incr/Mod1/test.desc | 2 +- regression/cbmc-with-incr/Mod2/test.desc | 2 +- regression/cbmc-with-incr/Multi_Dimensional_Array1/test.desc | 2 +- regression/cbmc-with-incr/Multi_Dimensional_Array2/test.desc | 2 +- regression/cbmc-with-incr/Multi_Dimensional_Array3/test.desc | 2 +- regression/cbmc-with-incr/Multi_Dimensional_Array4/test.desc | 2 +- regression/cbmc-with-incr/Multi_Dimensional_Array5/test.desc | 2 +- regression/cbmc-with-incr/Multi_Dimensional_Array6/test.desc | 2 +- regression/cbmc-with-incr/Negation1/test.desc | 2 +- regression/cbmc-with-incr/Negation2/test.desc | 2 +- regression/cbmc-with-incr/Overflow_Addition1/test.desc | 4 ++-- regression/cbmc-with-incr/Overflow_Multiplication1/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Arithmetic1/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Arithmetic10/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Arithmetic11/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Arithmetic12/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Arithmetic13/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Arithmetic2/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Arithmetic3/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Arithmetic4/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Arithmetic5/test.desc | 4 ++-- regression/cbmc-with-incr/Pointer_Arithmetic6/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Arithmetic7/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Arithmetic8/test.desc | 4 ++-- regression/cbmc-with-incr/Pointer_Arithmetic9/test.desc | 2 +- regression/cbmc-with-incr/Pointer_Assume1/test.desc | 2 +- regression/cbmc-with-incr/Pointer_array1/test.desc | 2 +- regression/cbmc-with-incr/Pointer_array2/test.desc | 2 +- regression/cbmc-with-incr/Pointer_byte_extract1/test.desc | 2 +- regression/cbmc-with-incr/Pointer_byte_extract2/test.desc | 2 +- regression/cbmc-with-incr/Pointer_byte_extract3/test.desc | 2 +- regression/cbmc-with-incr/Pointer_byte_extract4/test.desc | 2 +- regression/cbmc-with-incr/Pointer_byte_extract5/test.desc | 2 +- regression/cbmc-with-incr/Pointer_byte_extract6/test.desc | 2 +- regression/cbmc-with-incr/Pointer_byte_extract7/test.desc | 2 +- regression/cbmc-with-incr/Pointer_byte_extract8/test.desc | 2 +- regression/cbmc-with-incr/Pointer_difference1/test.desc | 2 +- regression/cbmc-with-incr/Promotion1/test.desc | 2 +- regression/cbmc-with-incr/Promotion2/test.desc | 2 +- regression/cbmc-with-incr/Quantifiers1/test.desc | 2 +- regression/cbmc-with-incr/Recursion1/test.desc | 2 +- regression/cbmc-with-incr/Recursion2/test.desc | 2 +- regression/cbmc-with-incr/Recursion3/test.desc | 2 +- regression/cbmc-with-incr/Recursion4/test.desc | 2 +- regression/cbmc-with-incr/Recursion5/test.desc | 2 +- regression/cbmc-with-incr/Recursion6/test.desc | 2 +- regression/cbmc-with-incr/Sideeffects1/test.desc | 2 +- regression/cbmc-with-incr/Sideeffects2/test.desc | 2 +- regression/cbmc-with-incr/Sideeffects3/test.desc | 2 +- regression/cbmc-with-incr/Sideeffects4/test.desc | 2 +- regression/cbmc-with-incr/Sideeffects5/test.desc | 2 +- regression/cbmc-with-incr/Sideeffects6/test.desc | 2 +- regression/cbmc-with-incr/Static2/test.desc | 2 +- regression/cbmc-with-incr/Static_Functions1/test.desc | 2 +- regression/cbmc-with-incr/String1/test.desc | 2 +- regression/cbmc-with-incr/String2/test.desc | 2 +- regression/cbmc-with-incr/String3/test.desc | 2 +- regression/cbmc-with-incr/String4/test.desc | 2 +- regression/cbmc-with-incr/String5/test.desc | 2 +- regression/cbmc-with-incr/String6/test.desc | 2 +- regression/cbmc-with-incr/String7/test.desc | 2 +- regression/cbmc-with-incr/String_Literal1/test.desc | 2 +- regression/cbmc-with-incr/Struct_Bytewise1/test.desc | 2 +- regression/cbmc-with-incr/Struct_Bytewise2/test.desc | 2 +- regression/cbmc-with-incr/Struct_Initialization1/test.desc | 2 +- regression/cbmc-with-incr/Struct_Initialization10/test.desc | 2 +- regression/cbmc-with-incr/Struct_Initialization2/test.desc | 2 +- regression/cbmc-with-incr/Struct_Initialization3/test.desc | 2 +- regression/cbmc-with-incr/Struct_Initialization4/test.desc | 2 +- regression/cbmc-with-incr/Struct_Initialization5/test.desc | 2 +- regression/cbmc-with-incr/Struct_Initialization6/test.desc | 2 +- regression/cbmc-with-incr/Struct_Initialization7/test.desc | 2 +- regression/cbmc-with-incr/Struct_Initialization9/test.desc | 2 +- regression/cbmc-with-incr/Struct_Padding1/test.desc | 2 +- regression/cbmc-with-incr/Typecast1/test.desc | 2 +- regression/cbmc-with-incr/Typecast2/test.desc | 2 +- regression/cbmc-with-incr/Undefined_Function1/test.desc | 4 ++-- regression/cbmc-with-incr/Union_Initialization1/test.desc | 2 +- regression/cbmc-with-incr/Unwinding_Locality1/test.desc | 2 +- regression/cbmc-with-incr/Visual_Studio_Types1/test.desc | 2 +- regression/cbmc-with-incr/Visual_Studio_Types2/test.desc | 2 +- regression/cbmc-with-incr/Volatile1/test.desc | 2 +- regression/cbmc-with-incr/Zero_Initialization1/test.desc | 2 +- regression/cbmc-with-incr/__func__1/test.desc | 2 +- regression/cbmc-with-incr/abs1/test.desc | 2 +- regression/cbmc-with-incr/argv1/test.desc | 2 +- regression/cbmc-with-incr/atomic_section_seq1/test.desc | 2 +- regression/cbmc-with-incr/char1/test.desc | 2 +- regression/cbmc-with-incr/character_handling1/test.desc | 2 +- regression/cbmc-with-incr/comma1/test.desc | 2 +- regression/cbmc-with-incr/complex1/test.desc | 2 +- regression/cbmc-with-incr/compound_literal1/test.desc | 2 +- regression/cbmc-with-incr/const_ptr1/test.desc | 2 +- regression/cbmc-with-incr/enum1/test.desc | 2 +- regression/cbmc-with-incr/enum2/test.desc | 2 +- regression/cbmc-with-incr/enum3/test.desc | 2 +- regression/cbmc-with-incr/enum4/test.desc | 2 +- regression/cbmc-with-incr/equality_through_array1/test.desc | 2 +- regression/cbmc-with-incr/equality_through_array2/test.desc | 2 +- regression/cbmc-with-incr/equality_through_array3/test.desc | 2 +- regression/cbmc-with-incr/equality_through_array4/test.desc | 2 +- regression/cbmc-with-incr/equality_through_array5/test.desc | 2 +- regression/cbmc-with-incr/equality_through_array6/test.desc | 2 +- .../equality_through_array_of_struct1/test.desc | 2 +- .../equality_through_array_of_struct2/test.desc | 2 +- .../equality_through_array_of_struct3/test.desc | 2 +- .../equality_through_array_of_struct4/test.desc | 2 +- regression/cbmc-with-incr/equality_through_struct1/test.desc | 2 +- regression/cbmc-with-incr/equality_through_struct2/test.desc | 2 +- regression/cbmc-with-incr/equality_through_struct3/test.desc | 2 +- regression/cbmc-with-incr/equality_through_struct4/test.desc | 2 +- regression/cbmc-with-incr/equality_through_struct5/test.desc | 2 +- .../equality_through_struct_containing_arrays1/test.desc | 2 +- .../equality_through_struct_containing_arrays2/test.desc | 2 +- .../equality_through_struct_containing_arrays3/test.desc | 2 +- regression/cbmc-with-incr/equality_through_union1/test.desc | 2 +- regression/cbmc-with-incr/equality_through_union2/test.desc | 2 +- regression/cbmc-with-incr/equality_through_union3/test.desc | 2 +- regression/cbmc-with-incr/exit1/test.desc | 2 +- regression/cbmc-with-incr/extern_initialization1/test.desc | 2 +- regression/cbmc-with-incr/extern_initialization2/test.desc | 2 +- regression/cbmc-with-incr/for-break1/test.desc | 2 +- regression/cbmc-with-incr/for1/test.desc | 2 +- regression/cbmc-with-incr/for2/test.desc | 2 +- regression/cbmc-with-incr/for3/test.desc | 2 +- regression/cbmc-with-incr/function_option1/test.desc | 2 +- regression/cbmc-with-incr/gcc_c99-bool-1/test.desc | 2 +- regression/cbmc-with-incr/gcc_conditional_expr1/test.desc | 2 +- regression/cbmc-with-incr/gcc_local_label1/test.desc | 2 +- regression/cbmc-with-incr/gcc_statement_expression1/test.desc | 2 +- regression/cbmc-with-incr/gcc_statement_expression2/test.desc | 2 +- regression/cbmc-with-incr/gcc_statement_expression3/test.desc | 2 +- regression/cbmc-with-incr/gcc_statement_expression4/test.desc | 2 +- regression/cbmc-with-incr/gcc_statement_expression5/test.desc | 2 +- regression/cbmc-with-incr/gcc_vector1/test.desc | 2 +- regression/cbmc-with-incr/gcc_vector2/test.desc | 2 +- regression/cbmc-with-incr/goto1/test.desc | 2 +- regression/cbmc-with-incr/goto2/test.desc | 2 +- regression/cbmc-with-incr/goto3/test.desc | 2 +- regression/cbmc-with-incr/goto4/test.desc | 2 +- regression/cbmc-with-incr/if1/test.desc | 2 +- regression/cbmc-with-incr/if2/test.desc | 2 +- regression/cbmc-with-incr/if3/test.desc | 2 +- regression/cbmc-with-incr/if4/test.desc | 2 +- regression/cbmc-with-incr/inline1/test.desc | 2 +- regression/cbmc-with-incr/int-to-float1/test.desc | 2 +- regression/cbmc-with-incr/int-to-float2/test.desc | 2 +- regression/cbmc-with-incr/locations1/test.desc | 2 +- regression/cbmc-with-incr/noop1/test.desc | 2 +- regression/cbmc-with-incr/null1/test.desc | 2 +- regression/cbmc-with-incr/null2/test.desc | 2 +- regression/cbmc-with-incr/offsetof1/test.desc | 2 +- regression/cbmc-with-incr/pipe1/test.desc | 2 +- regression/cbmc-with-incr/realloc1/test.desc | 2 +- regression/cbmc-with-incr/return1/test.desc | 2 +- regression/cbmc-with-incr/return3/test.desc | 2 +- regression/cbmc-with-incr/return4/test.desc | 2 +- regression/cbmc-with-incr/return5/test.desc | 2 +- regression/cbmc-with-incr/strtol1/test.desc | 2 +- regression/cbmc-with-incr/strtol2/test.desc | 2 +- regression/cbmc-with-incr/struct1/test.desc | 2 +- regression/cbmc-with-incr/struct3/test.desc | 2 +- regression/cbmc-with-incr/struct4/test.desc | 2 +- regression/cbmc-with-incr/struct6/test.desc | 2 +- regression/cbmc-with-incr/struct7/test.desc | 2 +- regression/cbmc-with-incr/struct8/test.desc | 2 +- regression/cbmc-with-incr/switch1/test.desc | 2 +- regression/cbmc-with-incr/switch2/test.desc | 2 +- regression/cbmc-with-incr/switch3/test.desc | 2 +- regression/cbmc-with-incr/switch4/test.desc | 2 +- regression/cbmc-with-incr/switch5/test.desc | 2 +- regression/cbmc-with-incr/switch6/test.desc | 2 +- regression/cbmc-with-incr/union1/test.desc | 2 +- regression/cbmc-with-incr/union2/test.desc | 2 +- regression/cbmc-with-incr/union3/test.desc | 2 +- regression/cbmc-with-incr/union4/test.desc | 2 +- regression/cbmc-with-incr/union5/test.desc | 2 +- regression/cbmc-with-incr/union6/test.desc | 2 +- regression/cbmc-with-incr/unsigned_char1/test.desc | 2 +- regression/cbmc-with-incr/va_list1/test.desc | 2 +- regression/cbmc-with-incr/va_list2/test.desc | 2 +- regression/cbmc-with-incr/void_ifthenelse/test.desc | 2 +- regression/cbmc-with-incr/while1/test.desc | 2 +- 402 files changed, 416 insertions(+), 404 deletions(-) create mode 100644 regression/array-refinement-with-incr/CMakeLists.txt create mode 100644 regression/cbmc-with-incr/CMakeLists.txt diff --git a/regression/CMakeLists.txt b/regression/CMakeLists.txt index c8b8382526f..911f4e0f014 100644 --- a/regression/CMakeLists.txt +++ b/regression/CMakeLists.txt @@ -32,6 +32,9 @@ add_subdirectory(cpp) add_subdirectory(cbmc-concurrency) add_subdirectory(cbmc-cover) add_subdirectory(cbmc-incr-oneloop) +add_subdirectory(cbmc-incr) +add_subdirectory(cbmc-with-incr) +add_subdirectory(array-refinement-with-incr) add_subdirectory(goto-instrument-typedef) add_subdirectory(smt2_solver) add_subdirectory(smt2_strings) diff --git a/regression/Makefile b/regression/Makefile index 9cc13313e34..f5cda758189 100644 --- a/regression/Makefile +++ b/regression/Makefile @@ -10,6 +10,9 @@ DIRS = cbmc \ cbmc-concurrency \ cbmc-cover \ cbmc-incr-oneloop \ + cbmc-incr \ + cbmc-with-incr \ + array-refinement-with-incr \ goto-instrument-typedef \ smt2_solver \ smt2_strings \ diff --git a/regression/array-refinement-with-incr/Array_UF1/test.desc b/regression/array-refinement-with-incr/Array_UF1/test.desc index 3fccfdb3d33..b5f97a1c26f 100644 --- a/regression/array-refinement-with-incr/Array_UF1/test.desc +++ b/regression/array-refinement-with-incr/Array_UF1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 11 ^EXIT=0$ diff --git a/regression/array-refinement-with-incr/Array_UF10/test.desc b/regression/array-refinement-with-incr/Array_UF10/test.desc index a8467ba9016..bd5ad60bd91 100644 --- a/regression/array-refinement-with-incr/Array_UF10/test.desc +++ b/regression/array-refinement-with-incr/Array_UF10/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 1 ^EXIT=0$ diff --git a/regression/array-refinement-with-incr/Array_UF11/test.desc b/regression/array-refinement-with-incr/Array_UF11/test.desc index 6629a4524e7..878da0a41b5 100644 --- a/regression/array-refinement-with-incr/Array_UF11/test.desc +++ b/regression/array-refinement-with-incr/Array_UF11/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 1 ^EXIT=10$ diff --git a/regression/array-refinement-with-incr/Array_UF12/test.desc b/regression/array-refinement-with-incr/Array_UF12/test.desc index 5cc1222bf70..bd65d053b3d 100644 --- a/regression/array-refinement-with-incr/Array_UF12/test.desc +++ b/regression/array-refinement-with-incr/Array_UF12/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 2 ^EXIT=10$ diff --git a/regression/array-refinement-with-incr/Array_UF13/test.desc b/regression/array-refinement-with-incr/Array_UF13/test.desc index a8467ba9016..bd5ad60bd91 100644 --- a/regression/array-refinement-with-incr/Array_UF13/test.desc +++ b/regression/array-refinement-with-incr/Array_UF13/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 1 ^EXIT=0$ diff --git a/regression/array-refinement-with-incr/Array_UF14/test.desc b/regression/array-refinement-with-incr/Array_UF14/test.desc index ec5e788bd97..9e500d61b9d 100644 --- a/regression/array-refinement-with-incr/Array_UF14/test.desc +++ b/regression/array-refinement-with-incr/Array_UF14/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 6 ^EXIT=10$ diff --git a/regression/array-refinement-with-incr/Array_UF15/test.desc b/regression/array-refinement-with-incr/Array_UF15/test.desc index 3fccfdb3d33..b5f97a1c26f 100644 --- a/regression/array-refinement-with-incr/Array_UF15/test.desc +++ b/regression/array-refinement-with-incr/Array_UF15/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 11 ^EXIT=0$ diff --git a/regression/array-refinement-with-incr/Array_UF16/test.desc b/regression/array-refinement-with-incr/Array_UF16/test.desc index 5cc1222bf70..bd65d053b3d 100644 --- a/regression/array-refinement-with-incr/Array_UF16/test.desc +++ b/regression/array-refinement-with-incr/Array_UF16/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 2 ^EXIT=10$ diff --git a/regression/array-refinement-with-incr/Array_UF17/test.desc b/regression/array-refinement-with-incr/Array_UF17/test.desc index fa1ab28a768..782725838bb 100644 --- a/regression/array-refinement-with-incr/Array_UF17/test.desc +++ b/regression/array-refinement-with-incr/Array_UF17/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 9 ^EXIT=0$ diff --git a/regression/array-refinement-with-incr/Array_UF18/test.desc b/regression/array-refinement-with-incr/Array_UF18/test.desc index 3fccfdb3d33..b5f97a1c26f 100644 --- a/regression/array-refinement-with-incr/Array_UF18/test.desc +++ b/regression/array-refinement-with-incr/Array_UF18/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 11 ^EXIT=0$ diff --git a/regression/array-refinement-with-incr/Array_UF19/test.desc b/regression/array-refinement-with-incr/Array_UF19/test.desc index 4acc3fa7050..29f4fdc1b61 100644 --- a/regression/array-refinement-with-incr/Array_UF19/test.desc +++ b/regression/array-refinement-with-incr/Array_UF19/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 3 ^EXIT=10$ diff --git a/regression/array-refinement-with-incr/Array_UF2/test.desc b/regression/array-refinement-with-incr/Array_UF2/test.desc index 80b8d99475e..fdab757dc1a 100644 --- a/regression/array-refinement-with-incr/Array_UF2/test.desc +++ b/regression/array-refinement-with-incr/Array_UF2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 5 ^EXIT=0$ diff --git a/regression/array-refinement-with-incr/Array_UF20/test.desc b/regression/array-refinement-with-incr/Array_UF20/test.desc index 11a7b0213c5..708a3418119 100644 --- a/regression/array-refinement-with-incr/Array_UF20/test.desc +++ b/regression/array-refinement-with-incr/Array_UF20/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 12 ^EXIT=10$ diff --git a/regression/array-refinement-with-incr/Array_UF3/test.desc b/regression/array-refinement-with-incr/Array_UF3/test.desc index 4a6354151db..914f7253e42 100644 --- a/regression/array-refinement-with-incr/Array_UF3/test.desc +++ b/regression/array-refinement-with-incr/Array_UF3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 3 --no-unwinding-assertions ^EXIT=10$ diff --git a/regression/array-refinement-with-incr/Array_UF4/test.desc b/regression/array-refinement-with-incr/Array_UF4/test.desc index d7d2fb825e7..c8ca724650f 100644 --- a/regression/array-refinement-with-incr/Array_UF4/test.desc +++ b/regression/array-refinement-with-incr/Array_UF4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 2 ^EXIT=0$ diff --git a/regression/array-refinement-with-incr/Array_UF5/test.desc b/regression/array-refinement-with-incr/Array_UF5/test.desc index 5cc1222bf70..bd65d053b3d 100644 --- a/regression/array-refinement-with-incr/Array_UF5/test.desc +++ b/regression/array-refinement-with-incr/Array_UF5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 2 ^EXIT=10$ diff --git a/regression/array-refinement-with-incr/Array_UF6/test.desc b/regression/array-refinement-with-incr/Array_UF6/test.desc index 4acc3fa7050..29f4fdc1b61 100644 --- a/regression/array-refinement-with-incr/Array_UF6/test.desc +++ b/regression/array-refinement-with-incr/Array_UF6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 3 ^EXIT=10$ diff --git a/regression/array-refinement-with-incr/Array_UF7/test.desc b/regression/array-refinement-with-incr/Array_UF7/test.desc index 4acc3fa7050..29f4fdc1b61 100644 --- a/regression/array-refinement-with-incr/Array_UF7/test.desc +++ b/regression/array-refinement-with-incr/Array_UF7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 3 ^EXIT=10$ diff --git a/regression/array-refinement-with-incr/Array_UF8/test.desc b/regression/array-refinement-with-incr/Array_UF8/test.desc index efa322956fc..8ddd09029a6 100644 --- a/regression/array-refinement-with-incr/Array_UF8/test.desc +++ b/regression/array-refinement-with-incr/Array_UF8/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 6 ^EXIT=0$ diff --git a/regression/array-refinement-with-incr/Array_UF9/test.desc b/regression/array-refinement-with-incr/Array_UF9/test.desc index b786bf61e5f..b756d46f954 100644 --- a/regression/array-refinement-with-incr/Array_UF9/test.desc +++ b/regression/array-refinement-with-incr/Array_UF9/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --arrays-uf-always --no-propagation --unwind-max 21 ^EXIT=10$ diff --git a/regression/array-refinement-with-incr/CMakeLists.txt b/regression/array-refinement-with-incr/CMakeLists.txt new file mode 100644 index 00000000000..da7f7e70da7 --- /dev/null +++ b/regression/array-refinement-with-incr/CMakeLists.txt @@ -0,0 +1,3 @@ +add_test_pl_tests( + "$ --incremental" +) diff --git a/regression/cbmc-incr/Ackermann02_false1/test.desc b/regression/cbmc-incr/Ackermann02_false1/test.desc index feb208278d1..fe5e0b6d27c 100644 --- a/regression/cbmc-incr/Ackermann02_false1/test.desc +++ b/regression/cbmc-incr/Ackermann02_false1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --error-label ERROR --unwind-max 6 ^EXIT=10$ diff --git a/regression/cbmc-incr/MultCommutative_true1/test.desc b/regression/cbmc-incr/MultCommutative_true1/test.desc index a907bb6415d..3e307e571fe 100644 --- a/regression/cbmc-incr/MultCommutative_true1/test.desc +++ b/regression/cbmc-incr/MultCommutative_true1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --error-label ERROR --unwind-max 6 --no-unwinding-assertions ^EXIT=0$ diff --git a/regression/cbmc-incr/alarm1/test.desc b/regression/cbmc-incr/alarm1/test.desc index 0b88cadbc06..650d3b27961 100644 --- a/regression/cbmc-incr/alarm1/test.desc +++ b/regression/cbmc-incr/alarm1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 25 --no-unwinding-assertions ^EXIT=0$ diff --git a/regression/cbmc-incr/alarm2/test.desc b/regression/cbmc-incr/alarm2/test.desc index 0d034169229..f51d0255b05 100644 --- a/regression/cbmc-incr/alarm2/test.desc +++ b/regression/cbmc-incr/alarm2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-min 5 --unwind-max 10 --no-unwinding-assertions ^EXIT=10$ diff --git a/regression/cbmc-incr/alarm3/test.desc b/regression/cbmc-incr/alarm3/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-incr/alarm3/test.desc +++ b/regression/cbmc-incr/alarm3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-incr/arrays2/test.desc b/regression/cbmc-incr/arrays2/test.desc index ace61c7fe7b..66f3d0a2450 100644 --- a/regression/cbmc-incr/arrays2/test.desc +++ b/regression/cbmc-incr/arrays2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 5 --no-unwinding-assertions --arrays-uf-always ^EXIT=10$ diff --git a/regression/cbmc-incr/arrays3/test.desc b/regression/cbmc-incr/arrays3/test.desc index e811d53f304..3beceac1239 100644 --- a/regression/cbmc-incr/arrays3/test.desc +++ b/regression/cbmc-incr/arrays3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions ^EXIT=0$ diff --git a/regression/cbmc-incr/arrays4/test.desc b/regression/cbmc-incr/arrays4/test.desc index e811d53f304..3beceac1239 100644 --- a/regression/cbmc-incr/arrays4/test.desc +++ b/regression/cbmc-incr/arrays4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions ^EXIT=0$ diff --git a/regression/cbmc-incr/arrays5/test.desc b/regression/cbmc-incr/arrays5/test.desc index c7aedd490fb..67c1665c96d 100644 --- a/regression/cbmc-incr/arrays5/test.desc +++ b/regression/cbmc-incr/arrays5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 5 --no-unwinding-assertions --arrays-uf-always ^EXIT=0$ diff --git a/regression/cbmc-incr/assertion-after-loop1/test.desc b/regression/cbmc-incr/assertion-after-loop1/test.desc index 3ede5ed0f72..efb176e1ccc 100644 --- a/regression/cbmc-incr/assertion-after-loop1/test.desc +++ b/regression/cbmc-incr/assertion-after-loop1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 10 ^EXIT=10$ diff --git a/regression/cbmc-incr/assertion-after-loop2/test.desc b/regression/cbmc-incr/assertion-after-loop2/test.desc index 7a617d1973c..f17855ff1c8 100644 --- a/regression/cbmc-incr/assertion-after-loop2/test.desc +++ b/regression/cbmc-incr/assertion-after-loop2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions --unwind-max 10 ^EXIT=0$ diff --git a/regression/cbmc-incr/cruise1/test.desc b/regression/cbmc-incr/cruise1/test.desc index 9474865a7c9..1a489aaeeff 100644 --- a/regression/cbmc-incr/cruise1/test.desc +++ b/regression/cbmc-incr/cruise1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 10 --no-unwinding-assertions ^EXIT=0$ diff --git a/regression/cbmc-incr/cruise2/test.desc b/regression/cbmc-incr/cruise2/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-incr/cruise2/test.desc +++ b/regression/cbmc-incr/cruise2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-incr/email_spec27_product31_false1/test.desc b/regression/cbmc-incr/email_spec27_product31_false1/test.desc index edff8ba88f3..beb86c48175 100644 --- a/regression/cbmc-incr/email_spec27_product31_false1/test.desc +++ b/regression/cbmc-incr/email_spec27_product31_false1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --error-label ERROR --unwind-max 3 ^EXIT=10$ diff --git a/regression/cbmc-incr/induction1/test.desc b/regression/cbmc-incr/induction1/test.desc index 0f773f9e2ab..5b28f0ad371 100644 --- a/regression/cbmc-incr/induction1/test.desc +++ b/regression/cbmc-incr/induction1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --stop-when-unsat --no-unwinding-assertions ^EXIT=0$ diff --git a/regression/cbmc-incr/magic1/test.desc b/regression/cbmc-incr/magic1/test.desc index d723f0ec32e..44dc9051110 100644 --- a/regression/cbmc-incr/magic1/test.desc +++ b/regression/cbmc-incr/magic1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --magic-numbers ^EXIT=0$ diff --git a/regression/cbmc-incr/minmaxunwind1/test.desc b/regression/cbmc-incr/minmaxunwind1/test.desc index 5c9b0241320..32f77897568 100644 --- a/regression/cbmc-incr/minmaxunwind1/test.desc +++ b/regression/cbmc-incr/minmaxunwind1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions --unwind-min 4 --unwind-max 6 ^EXIT=10$ diff --git a/regression/cbmc-incr/minmaxunwind2/test.desc b/regression/cbmc-incr/minmaxunwind2/test.desc index 0626ccb6645..1e5dc911cc5 100644 --- a/regression/cbmc-incr/minmaxunwind2/test.desc +++ b/regression/cbmc-incr/minmaxunwind2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions --unwind-min 5 --unwind-max 5 ^EXIT=10$ diff --git a/regression/cbmc-incr/minmaxunwind3/test.desc b/regression/cbmc-incr/minmaxunwind3/test.desc index 112bb920bdd..b9e907489b8 100644 --- a/regression/cbmc-incr/minmaxunwind3/test.desc +++ b/regression/cbmc-incr/minmaxunwind3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions --unwind-min 2 --unwind-max 4 ^EXIT=0$ diff --git a/regression/cbmc-incr/minmaxunwind4/test.desc b/regression/cbmc-incr/minmaxunwind4/test.desc index b1c035a6005..e3a5007d81d 100644 --- a/regression/cbmc-incr/minmaxunwind4/test.desc +++ b/regression/cbmc-incr/minmaxunwind4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions --unwind-min 6 --unwind-max 8 ^EXIT=10$ diff --git a/regression/cbmc-incr/minmaxunwind5/test.desc b/regression/cbmc-incr/minmaxunwind5/test.desc index 337f56ebade..4b81055826f 100644 --- a/regression/cbmc-incr/minmaxunwind5/test.desc +++ b/regression/cbmc-incr/minmaxunwind5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions --unwind-min 4 ^EXIT=10$ diff --git a/regression/cbmc-incr/moreasserts1/test.desc b/regression/cbmc-incr/moreasserts1/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-incr/moreasserts1/test.desc +++ b/regression/cbmc-incr/moreasserts1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-incr/moreloops1/test.desc b/regression/cbmc-incr/moreloops1/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-incr/moreloops1/test.desc +++ b/regression/cbmc-incr/moreloops1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-incr/nestedloop1/test.desc b/regression/cbmc-incr/nestedloop1/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-incr/nestedloop1/test.desc +++ b/regression/cbmc-incr/nestedloop1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-incr/no-unwinding-assertion1/test.desc b/regression/cbmc-incr/no-unwinding-assertion1/test.desc index 7a617d1973c..f17855ff1c8 100644 --- a/regression/cbmc-incr/no-unwinding-assertion1/test.desc +++ b/regression/cbmc-incr/no-unwinding-assertion1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions --unwind-max 10 ^EXIT=0$ diff --git a/regression/cbmc-incr/recursion1/test.desc b/regression/cbmc-incr/recursion1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-incr/recursion1/test.desc +++ b/regression/cbmc-incr/recursion1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-incr/recursion2/test.desc b/regression/cbmc-incr/recursion2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-incr/recursion2/test.desc +++ b/regression/cbmc-incr/recursion2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-incr/simpleloop1/test.desc b/regression/cbmc-incr/simpleloop1/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-incr/simpleloop1/test.desc +++ b/regression/cbmc-incr/simpleloop1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-incr/simpleloop2/test.desc b/regression/cbmc-incr/simpleloop2/test.desc index eb832bc4041..acae2360065 100644 --- a/regression/cbmc-incr/simpleloop2/test.desc +++ b/regression/cbmc-incr/simpleloop2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 6 --no-unwinding-assertions ^EXIT=10$ diff --git a/regression/cbmc-incr/simpleloop3/test.desc b/regression/cbmc-incr/simpleloop3/test.desc index 9b667e07606..1ad8506ebe7 100644 --- a/regression/cbmc-incr/simpleloop3/test.desc +++ b/regression/cbmc-incr/simpleloop3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions ^EXIT=10$ diff --git a/regression/cbmc-incr/simpleloopmax1/test.desc b/regression/cbmc-incr/simpleloopmax1/test.desc index 4b23aaa8a1e..dc32e82ea45 100644 --- a/regression/cbmc-incr/simpleloopmax1/test.desc +++ b/regression/cbmc-incr/simpleloopmax1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions --unwind-max 10 ^EXIT=10$ diff --git a/regression/cbmc-incr/simpleloopmax2/test.desc b/regression/cbmc-incr/simpleloopmax2/test.desc index 7a617d1973c..f17855ff1c8 100644 --- a/regression/cbmc-incr/simpleloopmax2/test.desc +++ b/regression/cbmc-incr/simpleloopmax2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-unwinding-assertions --unwind-max 10 ^EXIT=0$ diff --git a/regression/cbmc-incr/simplifier1/test.desc b/regression/cbmc-incr/simplifier1/test.desc index d4fd36300ef..e4ee9f7fc38 100644 --- a/regression/cbmc-incr/simplifier1/test.desc +++ b/regression/cbmc-incr/simplifier1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 5 --no-unwinding-assertions ^EXIT=0$ diff --git a/regression/cbmc-incr/simplifier2/test.desc b/regression/cbmc-incr/simplifier2/test.desc index bcf28728cec..41bba6f99c4 100644 --- a/regression/cbmc-incr/simplifier2/test.desc +++ b/regression/cbmc-incr/simplifier2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 3 --no-unwinding-assertions ^EXIT=0$ diff --git a/regression/cbmc-incr/simplifier3/test.desc b/regression/cbmc-incr/simplifier3/test.desc index d4fd36300ef..e4ee9f7fc38 100644 --- a/regression/cbmc-incr/simplifier3/test.desc +++ b/regression/cbmc-incr/simplifier3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 5 --no-unwinding-assertions ^EXIT=0$ diff --git a/regression/cbmc-incr/sum_array_true1/test.desc b/regression/cbmc-incr/sum_array_true1/test.desc index a907bb6415d..3e307e571fe 100644 --- a/regression/cbmc-incr/sum_array_true1/test.desc +++ b/regression/cbmc-incr/sum_array_true1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --error-label ERROR --unwind-max 6 --no-unwinding-assertions ^EXIT=0$ diff --git a/regression/cbmc-incr/unwind-not-forever1/test.desc b/regression/cbmc-incr/unwind-not-forever1/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-incr/unwind-not-forever1/test.desc +++ b/regression/cbmc-incr/unwind-not-forever1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-incr/unwind-not-forever2/test.desc b/regression/cbmc-incr/unwind-not-forever2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-incr/unwind-not-forever2/test.desc +++ b/regression/cbmc-incr/unwind-not-forever2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-incr/unwinding-assertion1/test.desc b/regression/cbmc-incr/unwinding-assertion1/test.desc index 3ede5ed0f72..efb176e1ccc 100644 --- a/regression/cbmc-incr/unwinding-assertion1/test.desc +++ b/regression/cbmc-incr/unwinding-assertion1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 10 ^EXIT=10$ diff --git a/regression/cbmc-incr/verisec_OpenSER__cases1_stripFullBoth_arr_false1/test.desc b/regression/cbmc-incr/verisec_OpenSER__cases1_stripFullBoth_arr_false1/test.desc index feb208278d1..fe5e0b6d27c 100644 --- a/regression/cbmc-incr/verisec_OpenSER__cases1_stripFullBoth_arr_false1/test.desc +++ b/regression/cbmc-incr/verisec_OpenSER__cases1_stripFullBoth_arr_false1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --error-label ERROR --unwind-max 6 ^EXIT=10$ diff --git a/regression/cbmc-with-incr/ASHR1/test.desc b/regression/cbmc-with-incr/ASHR1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/ASHR1/test.desc +++ b/regression/cbmc-with-incr/ASHR1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Address_of1/test.desc b/regression/cbmc-with-incr/Address_of1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Address_of1/test.desc +++ b/regression/cbmc-with-incr/Address_of1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Address_of2/test.desc b/regression/cbmc-with-incr/Address_of2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Address_of2/test.desc +++ b/regression/cbmc-with-incr/Address_of2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Anonymous_Struct1/test.desc b/regression/cbmc-with-incr/Anonymous_Struct1/test.desc index 39c491ba8bb..873bd8d918c 100644 --- a/regression/cbmc-with-incr/Anonymous_Struct1/test.desc +++ b/regression/cbmc-with-incr/Anonymous_Struct1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Anonymous_Struct2/test.desc b/regression/cbmc-with-incr/Anonymous_Struct2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Anonymous_Struct2/test.desc +++ b/regression/cbmc-with-incr/Anonymous_Struct2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Anonymous_Struct3/test.desc b/regression/cbmc-with-incr/Anonymous_Struct3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Anonymous_Struct3/test.desc +++ b/regression/cbmc-with-incr/Anonymous_Struct3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Array_Initialization1/test.desc b/regression/cbmc-with-incr/Array_Initialization1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Array_Initialization1/test.desc +++ b/regression/cbmc-with-incr/Array_Initialization1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Array_Initialization2/test.desc b/regression/cbmc-with-incr/Array_Initialization2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Array_Initialization2/test.desc +++ b/regression/cbmc-with-incr/Array_Initialization2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Array_Initialization3/test.desc b/regression/cbmc-with-incr/Array_Initialization3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Array_Initialization3/test.desc +++ b/regression/cbmc-with-incr/Array_Initialization3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Array_UF/test.desc b/regression/cbmc-with-incr/Array_UF/test.desc index 91cbd435ddd..d3d4443c8cb 100644 --- a/regression/cbmc-with-incr/Array_UF/test.desc +++ b/regression/cbmc-with-incr/Array_UF/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c --arrays-uf-always ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Assumption1/test.desc b/regression/cbmc-with-incr/Assumption1/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/Assumption1/test.desc +++ b/regression/cbmc-with-incr/Assumption1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/BV_Arithmetic1/test.desc b/regression/cbmc-with-incr/BV_Arithmetic1/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/BV_Arithmetic1/test.desc +++ b/regression/cbmc-with-incr/BV_Arithmetic1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/BV_Arithmetic2/test.desc b/regression/cbmc-with-incr/BV_Arithmetic2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/BV_Arithmetic2/test.desc +++ b/regression/cbmc-with-incr/BV_Arithmetic2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/BV_Arithmetic3/test.desc b/regression/cbmc-with-incr/BV_Arithmetic3/test.desc index d2a7e3e7574..e6ca0ec0299 100644 --- a/regression/cbmc-with-incr/BV_Arithmetic3/test.desc +++ b/regression/cbmc-with-incr/BV_Arithmetic3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/BV_Arithmetic4/test.desc b/regression/cbmc-with-incr/BV_Arithmetic4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/BV_Arithmetic4/test.desc +++ b/regression/cbmc-with-incr/BV_Arithmetic4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/BV_Arithmetic5/test.desc b/regression/cbmc-with-incr/BV_Arithmetic5/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/BV_Arithmetic5/test.desc +++ b/regression/cbmc-with-incr/BV_Arithmetic5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/BV_Arithmetic6/test.desc b/regression/cbmc-with-incr/BV_Arithmetic6/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/BV_Arithmetic6/test.desc +++ b/regression/cbmc-with-incr/BV_Arithmetic6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Bitfields1/test.desc b/regression/cbmc-with-incr/Bitfields1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Bitfields1/test.desc +++ b/regression/cbmc-with-incr/Bitfields1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Bitfields2/test.desc b/regression/cbmc-with-incr/Bitfields2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Bitfields2/test.desc +++ b/regression/cbmc-with-incr/Bitfields2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Bool1/test.desc b/regression/cbmc-with-incr/Bool1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Bool1/test.desc +++ b/regression/cbmc-with-incr/Bool1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Bool2/test.desc b/regression/cbmc-with-incr/Bool2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Bool2/test.desc +++ b/regression/cbmc-with-incr/Bool2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Bool3/test.desc b/regression/cbmc-with-incr/Bool3/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/Bool3/test.desc +++ b/regression/cbmc-with-incr/Bool3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Bool4/test.desc b/regression/cbmc-with-incr/Bool4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Bool4/test.desc +++ b/regression/cbmc-with-incr/Bool4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Boolean_Guards1/test.desc b/regression/cbmc-with-incr/Boolean_Guards1/test.desc index da239c1965b..6550ede8bf0 100644 --- a/regression/cbmc-with-incr/Boolean_Guards1/test.desc +++ b/regression/cbmc-with-incr/Boolean_Guards1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --bounds-check --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/CMakeLists.txt b/regression/cbmc-with-incr/CMakeLists.txt new file mode 100644 index 00000000000..da7f7e70da7 --- /dev/null +++ b/regression/cbmc-with-incr/CMakeLists.txt @@ -0,0 +1,3 @@ +add_test_pl_tests( + "$ --incremental" +) diff --git a/regression/cbmc-with-incr/Computed-Goto1/test.desc b/regression/cbmc-with-incr/Computed-Goto1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Computed-Goto1/test.desc +++ b/regression/cbmc-with-incr/Computed-Goto1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Division1/test.desc b/regression/cbmc-with-incr/Division1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Division1/test.desc +++ b/regression/cbmc-with-incr/Division1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Division2/test.desc b/regression/cbmc-with-incr/Division2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Division2/test.desc +++ b/regression/cbmc-with-incr/Division2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Double-to-float-no-simp1-fix1/test.desc b/regression/cbmc-with-incr/Double-to-float-no-simp1-fix1/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Double-to-float-no-simp1-fix1/test.desc +++ b/regression/cbmc-with-incr/Double-to-float-no-simp1-fix1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Double-to-float-no-simp1-fix2/test.desc b/regression/cbmc-with-incr/Double-to-float-no-simp1-fix2/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Double-to-float-no-simp1-fix2/test.desc +++ b/regression/cbmc-with-incr/Double-to-float-no-simp1-fix2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Double-to-float-no-simp1/test.desc b/regression/cbmc-with-incr/Double-to-float-no-simp1/test.desc index 26cf28c608c..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Double-to-float-no-simp1/test.desc +++ b/regression/cbmc-with-incr/Double-to-float-no-simp1/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Double-to-float-with-simp1/test.desc b/regression/cbmc-with-incr/Double-to-float-with-simp1/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Double-to-float-with-simp1/test.desc +++ b/regression/cbmc-with-incr/Double-to-float-with-simp1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Ellipsis1/test.desc b/regression/cbmc-with-incr/Ellipsis1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Ellipsis1/test.desc +++ b/regression/cbmc-with-incr/Ellipsis1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Ellipsis2/test.desc b/regression/cbmc-with-incr/Ellipsis2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Ellipsis2/test.desc +++ b/regression/cbmc-with-incr/Ellipsis2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Endianness1/test.desc b/regression/cbmc-with-incr/Endianness1/test.desc index 217eac96e2f..ba4b3088aad 100644 --- a/regression/cbmc-with-incr/Endianness1/test.desc +++ b/regression/cbmc-with-incr/Endianness1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --little-endian ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Endianness2/test.desc b/regression/cbmc-with-incr/Endianness2/test.desc index 4f2eebc5e15..7a9dc127d75 100644 --- a/regression/cbmc-with-incr/Endianness2/test.desc +++ b/regression/cbmc-with-incr/Endianness2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --big-endian ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Endianness3/test.desc b/regression/cbmc-with-incr/Endianness3/test.desc index 217eac96e2f..ba4b3088aad 100644 --- a/regression/cbmc-with-incr/Endianness3/test.desc +++ b/regression/cbmc-with-incr/Endianness3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --little-endian ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Endianness4/test.desc b/regression/cbmc-with-incr/Endianness4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Endianness4/test.desc +++ b/regression/cbmc-with-incr/Endianness4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Endianness5/test.desc b/regression/cbmc-with-incr/Endianness5/test.desc index 4e90da351ba..78c5c527dda 100644 --- a/regression/cbmc-with-incr/Endianness5/test.desc +++ b/regression/cbmc-with-incr/Endianness5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --little-endian --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Endianness6/test.desc b/regression/cbmc-with-incr/Endianness6/test.desc index 81ceb4c6dc0..97280db41b7 100644 --- a/regression/cbmc-with-incr/Endianness6/test.desc +++ b/regression/cbmc-with-incr/Endianness6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --big-endian ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Endianness7/test.desc b/regression/cbmc-with-incr/Endianness7/test.desc index 54056d719c9..5c1f29271aa 100644 --- a/regression/cbmc-with-incr/Endianness7/test.desc +++ b/regression/cbmc-with-incr/Endianness7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --big-endian --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Endianness8/test.desc b/regression/cbmc-with-incr/Endianness8/test.desc index 81ceb4c6dc0..97280db41b7 100644 --- a/regression/cbmc-with-incr/Endianness8/test.desc +++ b/regression/cbmc-with-incr/Endianness8/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --big-endian ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Endianness9/test.desc b/regression/cbmc-with-incr/Endianness9/test.desc index 76e90889ee9..97280db41b7 100644 --- a/regression/cbmc-with-incr/Endianness9/test.desc +++ b/regression/cbmc-with-incr/Endianness9/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c --big-endian ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Error_Label1/test.desc b/regression/cbmc-with-incr/Error_Label1/test.desc index e14ade773e5..954d11d1147 100644 --- a/regression/cbmc-with-incr/Error_Label1/test.desc +++ b/regression/cbmc-with-incr/Error_Label1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --error-label ERROR ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Error_Label2/test.desc b/regression/cbmc-with-incr/Error_Label2/test.desc index 3631d5c8930..9392434c203 100644 --- a/regression/cbmc-with-incr/Error_Label2/test.desc +++ b/regression/cbmc-with-incr/Error_Label2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --error-label ERROR --no-assertions ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Error_Label3/test.desc b/regression/cbmc-with-incr/Error_Label3/test.desc index 450e47883c7..f8278beb10b 100644 --- a/regression/cbmc-with-incr/Error_Label3/test.desc +++ b/regression/cbmc-with-incr/Error_Label3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --error-label ERROR1 --error-label ERROR2 ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Eval_Order1/test.desc b/regression/cbmc-with-incr/Eval_Order1/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/Eval_Order1/test.desc +++ b/regression/cbmc-with-incr/Eval_Order1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Exceptions1/test.desc b/regression/cbmc-with-incr/Exceptions1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Exceptions1/test.desc +++ b/regression/cbmc-with-incr/Exceptions1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Failing_Assert1/test.desc b/regression/cbmc-with-incr/Failing_Assert1/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/Failing_Assert1/test.desc +++ b/regression/cbmc-with-incr/Failing_Assert1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Fixedbv1/test.desc b/regression/cbmc-with-incr/Fixedbv1/test.desc index 991a8916c67..53abd750f68 100644 --- a/regression/cbmc-with-incr/Fixedbv1/test.desc +++ b/regression/cbmc-with-incr/Fixedbv1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --fixedbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Fixedbv2/test.desc b/regression/cbmc-with-incr/Fixedbv2/test.desc index 991a8916c67..53abd750f68 100644 --- a/regression/cbmc-with-incr/Fixedbv2/test.desc +++ b/regression/cbmc-with-incr/Fixedbv2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --fixedbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Fixedbv3/test.desc b/regression/cbmc-with-incr/Fixedbv3/test.desc index 991a8916c67..53abd750f68 100644 --- a/regression/cbmc-with-incr/Fixedbv3/test.desc +++ b/regression/cbmc-with-incr/Fixedbv3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --fixedbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Fixedbv4/test.desc b/regression/cbmc-with-incr/Fixedbv4/test.desc index a43bbd7df65..dcd58b05b14 100644 --- a/regression/cbmc-with-incr/Fixedbv4/test.desc +++ b/regression/cbmc-with-incr/Fixedbv4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --fixedbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Fixedbv5/test.desc b/regression/cbmc-with-incr/Fixedbv5/test.desc index 991a8916c67..53abd750f68 100644 --- a/regression/cbmc-with-incr/Fixedbv5/test.desc +++ b/regression/cbmc-with-incr/Fixedbv5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --fixedbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Fixedbv6/test.desc b/regression/cbmc-with-incr/Fixedbv6/test.desc index 991a8916c67..53abd750f68 100644 --- a/regression/cbmc-with-incr/Fixedbv6/test.desc +++ b/regression/cbmc-with-incr/Fixedbv6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --fixedbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Fixedbv7/test.desc b/regression/cbmc-with-incr/Fixedbv7/test.desc index 5b018497756..660c72500af 100644 --- a/regression/cbmc-with-incr/Fixedbv7/test.desc +++ b/regression/cbmc-with-incr/Fixedbv7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --fixedbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-Rounding1/test.desc b/regression/cbmc-with-incr/Float-Rounding1/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float-Rounding1/test.desc +++ b/regression/cbmc-with-incr/Float-Rounding1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-Rounding2/test.desc b/regression/cbmc-with-incr/Float-Rounding2/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float-Rounding2/test.desc +++ b/regression/cbmc-with-incr/Float-Rounding2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-data-dependent-rounding/test.desc b/regression/cbmc-with-incr/Float-data-dependent-rounding/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Float-data-dependent-rounding/test.desc +++ b/regression/cbmc-with-incr/Float-data-dependent-rounding/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-div1/test.desc b/regression/cbmc-with-incr/Float-div1/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float-div1/test.desc +++ b/regression/cbmc-with-incr/Float-div1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-flags-no-simp1/test.desc b/regression/cbmc-with-incr/Float-flags-no-simp1/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Float-flags-no-simp1/test.desc +++ b/regression/cbmc-with-incr/Float-flags-no-simp1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-flags-simp1/test.desc b/regression/cbmc-with-incr/Float-flags-simp1/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float-flags-simp1/test.desc +++ b/regression/cbmc-with-incr/Float-flags-simp1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-no-simp1/test.desc b/regression/cbmc-with-incr/Float-no-simp1/test.desc index 376d43d5dfa..b7c95d95569 100644 --- a/regression/cbmc-with-incr/Float-no-simp1/test.desc +++ b/regression/cbmc-with-incr/Float-no-simp1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-no-simp2/test.desc b/regression/cbmc-with-incr/Float-no-simp2/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Float-no-simp2/test.desc +++ b/regression/cbmc-with-incr/Float-no-simp2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-no-simp3/test.desc b/regression/cbmc-with-incr/Float-no-simp3/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Float-no-simp3/test.desc +++ b/regression/cbmc-with-incr/Float-no-simp3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-no-simp4/test.desc b/regression/cbmc-with-incr/Float-no-simp4/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Float-no-simp4/test.desc +++ b/regression/cbmc-with-incr/Float-no-simp4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-no-simp5/test.desc b/regression/cbmc-with-incr/Float-no-simp5/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Float-no-simp5/test.desc +++ b/regression/cbmc-with-incr/Float-no-simp5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-no-simp6/test.desc b/regression/cbmc-with-incr/Float-no-simp6/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Float-no-simp6/test.desc +++ b/regression/cbmc-with-incr/Float-no-simp6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-no-simp7/test.desc b/regression/cbmc-with-incr/Float-no-simp7/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Float-no-simp7/test.desc +++ b/regression/cbmc-with-incr/Float-no-simp7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-no-simp8/test.desc b/regression/cbmc-with-incr/Float-no-simp8/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Float-no-simp8/test.desc +++ b/regression/cbmc-with-incr/Float-no-simp8/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-no-simp9/test.desc b/regression/cbmc-with-incr/Float-no-simp9/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Float-no-simp9/test.desc +++ b/regression/cbmc-with-incr/Float-no-simp9/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-overflow1/test.desc b/regression/cbmc-with-incr/Float-overflow1/test.desc index a1de3d41cf0..34ceb2ef1d1 100644 --- a/regression/cbmc-with-incr/Float-overflow1/test.desc +++ b/regression/cbmc-with-incr/Float-overflow1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --float-overflow-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-overflow2/test.desc b/regression/cbmc-with-incr/Float-overflow2/test.desc index f7cd5fc8bf3..fe62098e887 100644 --- a/regression/cbmc-with-incr/Float-overflow2/test.desc +++ b/regression/cbmc-with-incr/Float-overflow2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --float-overflow-check ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Float-to-double1/test.desc b/regression/cbmc-with-incr/Float-to-double1/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float-to-double1/test.desc +++ b/regression/cbmc-with-incr/Float-to-double1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-to-double2/test.desc b/regression/cbmc-with-incr/Float-to-double2/test.desc index 4d2a93e6e26..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Float-to-double2/test.desc +++ b/regression/cbmc-with-incr/Float-to-double2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float-zero-sum1/test.desc b/regression/cbmc-with-incr/Float-zero-sum1/test.desc index 26cf28c608c..dc9e039b99a 100644 --- a/regression/cbmc-with-incr/Float-zero-sum1/test.desc +++ b/regression/cbmc-with-incr/Float-zero-sum1/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c --floatbv --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float1/test.desc b/regression/cbmc-with-incr/Float1/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float1/test.desc +++ b/regression/cbmc-with-incr/Float1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float11/test.desc b/regression/cbmc-with-incr/Float11/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float11/test.desc +++ b/regression/cbmc-with-incr/Float11/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float12/test.desc b/regression/cbmc-with-incr/Float12/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Float12/test.desc +++ b/regression/cbmc-with-incr/Float12/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float13/test.desc b/regression/cbmc-with-incr/Float13/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Float13/test.desc +++ b/regression/cbmc-with-incr/Float13/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float14/test.desc b/regression/cbmc-with-incr/Float14/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Float14/test.desc +++ b/regression/cbmc-with-incr/Float14/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float18/test.desc b/regression/cbmc-with-incr/Float18/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float18/test.desc +++ b/regression/cbmc-with-incr/Float18/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float19/test.desc b/regression/cbmc-with-incr/Float19/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float19/test.desc +++ b/regression/cbmc-with-incr/Float19/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float2/test.desc b/regression/cbmc-with-incr/Float2/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float2/test.desc +++ b/regression/cbmc-with-incr/Float2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float20/test.desc b/regression/cbmc-with-incr/Float20/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float20/test.desc +++ b/regression/cbmc-with-incr/Float20/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float21/test.desc b/regression/cbmc-with-incr/Float21/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float21/test.desc +++ b/regression/cbmc-with-incr/Float21/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float22/test.desc b/regression/cbmc-with-incr/Float22/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float22/test.desc +++ b/regression/cbmc-with-incr/Float22/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float3/test.desc b/regression/cbmc-with-incr/Float3/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float3/test.desc +++ b/regression/cbmc-with-incr/Float3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float4/test.desc b/regression/cbmc-with-incr/Float4/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float4/test.desc +++ b/regression/cbmc-with-incr/Float4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float5/test.desc b/regression/cbmc-with-incr/Float5/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float5/test.desc +++ b/regression/cbmc-with-incr/Float5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float6/test.desc b/regression/cbmc-with-incr/Float6/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float6/test.desc +++ b/regression/cbmc-with-incr/Float6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float7/test.desc b/regression/cbmc-with-incr/Float7/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Float7/test.desc +++ b/regression/cbmc-with-incr/Float7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float8/test.desc b/regression/cbmc-with-incr/Float8/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Float8/test.desc +++ b/regression/cbmc-with-incr/Float8/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float_lib1/test.desc b/regression/cbmc-with-incr/Float_lib1/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float_lib1/test.desc +++ b/regression/cbmc-with-incr/Float_lib1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Float_lib2/test.desc b/regression/cbmc-with-incr/Float_lib2/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/Float_lib2/test.desc +++ b/regression/cbmc-with-incr/Float_lib2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Free1/test.desc b/regression/cbmc-with-incr/Free1/test.desc index 02f1049518a..90d1fb1d263 100644 --- a/regression/cbmc-with-incr/Free1/test.desc +++ b/regression/cbmc-with-incr/Free1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Free2/test.desc b/regression/cbmc-with-incr/Free2/test.desc index 02f1049518a..90d1fb1d263 100644 --- a/regression/cbmc-with-incr/Free2/test.desc +++ b/regression/cbmc-with-incr/Free2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Free3/test.desc b/regression/cbmc-with-incr/Free3/test.desc index fd1b888b81d..7cb31bd31f9 100644 --- a/regression/cbmc-with-incr/Free3/test.desc +++ b/regression/cbmc-with-incr/Free3/test.desc @@ -1,8 +1,8 @@ -CORE +FUTURE main.c --pointer-check +^EXIT=10$ ^SIGNAL=0$ -^Counterexample:$ ^VERIFICATION FAILED$ -- ^warning: ignoring diff --git a/regression/cbmc-with-incr/Free4/test.desc b/regression/cbmc-with-incr/Free4/test.desc index fd1b888b81d..7cb31bd31f9 100644 --- a/regression/cbmc-with-incr/Free4/test.desc +++ b/regression/cbmc-with-incr/Free4/test.desc @@ -1,8 +1,8 @@ -CORE +FUTURE main.c --pointer-check +^EXIT=10$ ^SIGNAL=0$ -^Counterexample:$ ^VERIFICATION FAILED$ -- ^warning: ignoring diff --git a/regression/cbmc-with-incr/Function-KnR1/test.desc b/regression/cbmc-with-incr/Function-KnR1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function-KnR1/test.desc +++ b/regression/cbmc-with-incr/Function-KnR1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function1/test.desc b/regression/cbmc-with-incr/Function1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function1/test.desc +++ b/regression/cbmc-with-incr/Function1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function10/test.desc b/regression/cbmc-with-incr/Function10/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function10/test.desc +++ b/regression/cbmc-with-incr/Function10/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function11/test.desc b/regression/cbmc-with-incr/Function11/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function11/test.desc +++ b/regression/cbmc-with-incr/Function11/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function12/test.desc b/regression/cbmc-with-incr/Function12/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function12/test.desc +++ b/regression/cbmc-with-incr/Function12/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function13/test.desc b/regression/cbmc-with-incr/Function13/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function13/test.desc +++ b/regression/cbmc-with-incr/Function13/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function2/test.desc b/regression/cbmc-with-incr/Function2/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/Function2/test.desc +++ b/regression/cbmc-with-incr/Function2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Function3/test.desc b/regression/cbmc-with-incr/Function3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function3/test.desc +++ b/regression/cbmc-with-incr/Function3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function4/test.desc b/regression/cbmc-with-incr/Function4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function4/test.desc +++ b/regression/cbmc-with-incr/Function4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function5/test.desc b/regression/cbmc-with-incr/Function5/test.desc index 50371f73fff..9a3c0c12d69 100644 --- a/regression/cbmc-with-incr/Function5/test.desc +++ b/regression/cbmc-with-incr/Function5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check --bounds-check ^SIGNAL=0$ diff --git a/regression/cbmc-with-incr/Function6/test.desc b/regression/cbmc-with-incr/Function6/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function6/test.desc +++ b/regression/cbmc-with-incr/Function6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function7/test.desc b/regression/cbmc-with-incr/Function7/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function7/test.desc +++ b/regression/cbmc-with-incr/Function7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function8/test.desc b/regression/cbmc-with-incr/Function8/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/Function8/test.desc +++ b/regression/cbmc-with-incr/Function8/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Function9/test.desc b/regression/cbmc-with-incr/Function9/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/Function9/test.desc +++ b/regression/cbmc-with-incr/Function9/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Function_Eval_Order2/test.desc b/regression/cbmc-with-incr/Function_Eval_Order2/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/Function_Eval_Order2/test.desc +++ b/regression/cbmc-with-incr/Function_Eval_Order2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Function_Parameters1/test.desc b/regression/cbmc-with-incr/Function_Parameters1/test.desc index fc2b1874059..f98f52c58e3 100644 --- a/regression/cbmc-with-incr/Function_Parameters1/test.desc +++ b/regression/cbmc-with-incr/Function_Parameters1/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer1/test.desc b/regression/cbmc-with-incr/Function_Pointer1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function_Pointer1/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer10/test.desc b/regression/cbmc-with-incr/Function_Pointer10/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function_Pointer10/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer10/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer11/test.desc b/regression/cbmc-with-incr/Function_Pointer11/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function_Pointer11/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer11/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer12/test.desc b/regression/cbmc-with-incr/Function_Pointer12/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function_Pointer12/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer12/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer13/test.desc b/regression/cbmc-with-incr/Function_Pointer13/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function_Pointer13/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer13/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer14/test.desc b/regression/cbmc-with-incr/Function_Pointer14/test.desc index 39c491ba8bb..873bd8d918c 100644 --- a/regression/cbmc-with-incr/Function_Pointer14/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer14/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer15/test.desc b/regression/cbmc-with-incr/Function_Pointer15/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/Function_Pointer15/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer15/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Function_Pointer16/test.desc b/regression/cbmc-with-incr/Function_Pointer16/test.desc index 39c491ba8bb..873bd8d918c 100644 --- a/regression/cbmc-with-incr/Function_Pointer16/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer16/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer17/test.desc b/regression/cbmc-with-incr/Function_Pointer17/test.desc index b5f3e5b3c93..58806af6ac6 100644 --- a/regression/cbmc-with-incr/Function_Pointer17/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer17/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 1 ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer2/test.desc b/regression/cbmc-with-incr/Function_Pointer2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function_Pointer2/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer3/test.desc b/regression/cbmc-with-incr/Function_Pointer3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function_Pointer3/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer4/test.desc b/regression/cbmc-with-incr/Function_Pointer4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function_Pointer4/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer5/test.desc b/regression/cbmc-with-incr/Function_Pointer5/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function_Pointer5/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer6/test.desc b/regression/cbmc-with-incr/Function_Pointer6/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function_Pointer6/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer7/test.desc b/regression/cbmc-with-incr/Function_Pointer7/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Function_Pointer7/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Function_Pointer8/test.desc b/regression/cbmc-with-incr/Function_Pointer8/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/Function_Pointer8/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer8/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Function_Pointer9/test.desc b/regression/cbmc-with-incr/Function_Pointer9/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/Function_Pointer9/test.desc +++ b/regression/cbmc-with-incr/Function_Pointer9/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Global_Initialization1/test.desc b/regression/cbmc-with-incr/Global_Initialization1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Global_Initialization1/test.desc +++ b/regression/cbmc-with-incr/Global_Initialization1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Global_Initialization2/test.desc b/regression/cbmc-with-incr/Global_Initialization2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Global_Initialization2/test.desc +++ b/regression/cbmc-with-incr/Global_Initialization2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Initialization1/test.desc b/regression/cbmc-with-incr/Initialization1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Initialization1/test.desc +++ b/regression/cbmc-with-incr/Initialization1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Initialization2/test.desc b/regression/cbmc-with-incr/Initialization2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Initialization2/test.desc +++ b/regression/cbmc-with-incr/Initialization2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Initialization3/test.desc b/regression/cbmc-with-incr/Initialization3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Initialization3/test.desc +++ b/regression/cbmc-with-incr/Initialization3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Initialization5/test.desc b/regression/cbmc-with-incr/Initialization5/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/Initialization5/test.desc +++ b/regression/cbmc-with-incr/Initialization5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Initialization6/test.desc b/regression/cbmc-with-incr/Initialization6/test.desc index fb5fd7bb84f..4aa47233d39 100644 --- a/regression/cbmc-with-incr/Initialization6/test.desc +++ b/regression/cbmc-with-incr/Initialization6/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Initialization7/test.desc b/regression/cbmc-with-incr/Initialization7/test.desc index fb5fd7bb84f..4aa47233d39 100644 --- a/regression/cbmc-with-incr/Initialization7/test.desc +++ b/regression/cbmc-with-incr/Initialization7/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Linking1/test.desc b/regression/cbmc-with-incr/Linking1/test.desc index af20f90c655..b302e1734c3 100644 --- a/regression/cbmc-with-incr/Linking1/test.desc +++ b/regression/cbmc-with-incr/Linking1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c module.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Linking2/test.desc b/regression/cbmc-with-incr/Linking2/test.desc index af20f90c655..b302e1734c3 100644 --- a/regression/cbmc-with-incr/Linking2/test.desc +++ b/regression/cbmc-with-incr/Linking2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c module.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Linking3/test.desc b/regression/cbmc-with-incr/Linking3/test.desc index bb271770fef..eac92128f48 100644 --- a/regression/cbmc-with-incr/Linking3/test.desc +++ b/regression/cbmc-with-incr/Linking3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main1.c main2.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Linking4/test.desc b/regression/cbmc-with-incr/Linking4/test.desc index d88e6744dbd..e55c8af1212 100644 --- a/regression/cbmc-with-incr/Linking4/test.desc +++ b/regression/cbmc-with-incr/Linking4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE link1.c link2.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Local_out_of_scope1/test.desc b/regression/cbmc-with-incr/Local_out_of_scope1/test.desc index 950f6791fef..7cb31bd31f9 100644 --- a/regression/cbmc-with-incr/Local_out_of_scope1/test.desc +++ b/regression/cbmc-with-incr/Local_out_of_scope1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Malloc13/test.desc b/regression/cbmc-with-incr/Malloc13/test.desc index f3145b289ad..24c71045fd8 100644 --- a/regression/cbmc-with-incr/Malloc13/test.desc +++ b/regression/cbmc-with-incr/Malloc13/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --string-abstraction ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Malloc14/test.desc b/regression/cbmc-with-incr/Malloc14/test.desc index 9c96469df12..fb6666914d4 100644 --- a/regression/cbmc-with-incr/Malloc14/test.desc +++ b/regression/cbmc-with-incr/Malloc14/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Malloc15/test.desc b/regression/cbmc-with-incr/Malloc15/test.desc index f046159d042..b2b85f25827 100644 --- a/regression/cbmc-with-incr/Malloc15/test.desc +++ b/regression/cbmc-with-incr/Malloc15/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --32 ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Malloc16/test.desc b/regression/cbmc-with-incr/Malloc16/test.desc index f046159d042..b2b85f25827 100644 --- a/regression/cbmc-with-incr/Malloc16/test.desc +++ b/regression/cbmc-with-incr/Malloc16/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --32 ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Malloc17/test.desc b/regression/cbmc-with-incr/Malloc17/test.desc index 9c96469df12..fb6666914d4 100644 --- a/regression/cbmc-with-incr/Malloc17/test.desc +++ b/regression/cbmc-with-incr/Malloc17/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Malloc18/test.desc b/regression/cbmc-with-incr/Malloc18/test.desc index a27d6e3414c..fb6666914d4 100644 --- a/regression/cbmc-with-incr/Malloc18/test.desc +++ b/regression/cbmc-with-incr/Malloc18/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Malloc19/test.desc b/regression/cbmc-with-incr/Malloc19/test.desc index a27d6e3414c..fb6666914d4 100644 --- a/regression/cbmc-with-incr/Malloc19/test.desc +++ b/regression/cbmc-with-incr/Malloc19/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Malloc20/test.desc b/regression/cbmc-with-incr/Malloc20/test.desc index a27d6e3414c..fb6666914d4 100644 --- a/regression/cbmc-with-incr/Malloc20/test.desc +++ b/regression/cbmc-with-incr/Malloc20/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Memmove1/test.desc b/regression/cbmc-with-incr/Memmove1/test.desc index c0092d0ee56..76e601983c1 100644 --- a/regression/cbmc-with-incr/Memmove1/test.desc +++ b/regression/cbmc-with-incr/Memmove1/test.desc @@ -1,4 +1,4 @@ -THOROUGH +FUTURE main.c --unwind 17 ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Memory_leak1/test.desc b/regression/cbmc-with-incr/Memory_leak1/test.desc index 91591a9814c..4a3deeb99a4 100644 --- a/regression/cbmc-with-incr/Memory_leak1/test.desc +++ b/regression/cbmc-with-incr/Memory_leak1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --memory-leak-check ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Memory_leak2/test.desc b/regression/cbmc-with-incr/Memory_leak2/test.desc index f90f7c4f8f1..9d475e80a99 100644 --- a/regression/cbmc-with-incr/Memory_leak2/test.desc +++ b/regression/cbmc-with-incr/Memory_leak2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --memory-leak-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Mod1/test.desc b/regression/cbmc-with-incr/Mod1/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/Mod1/test.desc +++ b/regression/cbmc-with-incr/Mod1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Mod2/test.desc b/regression/cbmc-with-incr/Mod2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Mod2/test.desc +++ b/regression/cbmc-with-incr/Mod2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Multi_Dimensional_Array1/test.desc b/regression/cbmc-with-incr/Multi_Dimensional_Array1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Multi_Dimensional_Array1/test.desc +++ b/regression/cbmc-with-incr/Multi_Dimensional_Array1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Multi_Dimensional_Array2/test.desc b/regression/cbmc-with-incr/Multi_Dimensional_Array2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Multi_Dimensional_Array2/test.desc +++ b/regression/cbmc-with-incr/Multi_Dimensional_Array2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Multi_Dimensional_Array3/test.desc b/regression/cbmc-with-incr/Multi_Dimensional_Array3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Multi_Dimensional_Array3/test.desc +++ b/regression/cbmc-with-incr/Multi_Dimensional_Array3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Multi_Dimensional_Array4/test.desc b/regression/cbmc-with-incr/Multi_Dimensional_Array4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Multi_Dimensional_Array4/test.desc +++ b/regression/cbmc-with-incr/Multi_Dimensional_Array4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Multi_Dimensional_Array5/test.desc b/regression/cbmc-with-incr/Multi_Dimensional_Array5/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Multi_Dimensional_Array5/test.desc +++ b/regression/cbmc-with-incr/Multi_Dimensional_Array5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Multi_Dimensional_Array6/test.desc b/regression/cbmc-with-incr/Multi_Dimensional_Array6/test.desc index c171dd49a18..083aef95321 100644 --- a/regression/cbmc-with-incr/Multi_Dimensional_Array6/test.desc +++ b/regression/cbmc-with-incr/Multi_Dimensional_Array6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unwind-max 3 --no-unwinding-assertions --all-properties ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Negation1/test.desc b/regression/cbmc-with-incr/Negation1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Negation1/test.desc +++ b/regression/cbmc-with-incr/Negation1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Negation2/test.desc b/regression/cbmc-with-incr/Negation2/test.desc index cbd90510599..415020cf03f 100644 --- a/regression/cbmc-with-incr/Negation2/test.desc +++ b/regression/cbmc-with-incr/Negation2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-propagation ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Overflow_Addition1/test.desc b/regression/cbmc-with-incr/Overflow_Addition1/test.desc index 5dbaca0c795..846e5400516 100644 --- a/regression/cbmc-with-incr/Overflow_Addition1/test.desc +++ b/regression/cbmc-with-incr/Overflow_Addition1/test.desc @@ -1,8 +1,8 @@ -CORE +FUTURE main.c --signed-overflow-check +^EXIT=10$ ^SIGNAL=0$ -^Counterexample:$ ^VERIFICATION FAILED$ -- ^warning: ignoring diff --git a/regression/cbmc-with-incr/Overflow_Multiplication1/test.desc b/regression/cbmc-with-incr/Overflow_Multiplication1/test.desc index a83213498f1..161b62e81d1 100644 --- a/regression/cbmc-with-incr/Overflow_Multiplication1/test.desc +++ b/regression/cbmc-with-incr/Overflow_Multiplication1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE falsealarm.c --signed-overflow-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic1/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic1/test.desc index 39c491ba8bb..873bd8d918c 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic1/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic10/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic10/test.desc index 39c491ba8bb..873bd8d918c 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic10/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic10/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic11/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic11/test.desc index f5e039ba3ed..d6d68d98e98 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic11/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic11/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check --little-endian ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic12/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic12/test.desc index 3de54602985..38d939ef120 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic12/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic12/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --32 --little-endian ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic13/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic13/test.desc index 52168c7eba4..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic13/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic13/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic2/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic2/test.desc index 39c491ba8bb..873bd8d918c 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic2/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic3/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic3/test.desc index 39c491ba8bb..873bd8d918c 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic3/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic4/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic4/test.desc index 39c491ba8bb..873bd8d918c 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic4/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic5/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic5/test.desc index 73810cf4375..d1dc65c4c82 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic5/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic5/test.desc @@ -1,8 +1,8 @@ -CORE +FUTURE main.c --pointer-check --bounds-check --function f +^EXIT=10$ ^SIGNAL=0$ -^Counterexample:$ ^VERIFICATION FAILED$ -- ^warning: ignoring diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic6/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic6/test.desc index 39c491ba8bb..873bd8d918c 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic6/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic7/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic7/test.desc index 39c491ba8bb..873bd8d918c 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic7/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic8/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic8/test.desc index 0f0f5660f42..d3f7d2d7cdd 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic8/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic8/test.desc @@ -1,8 +1,8 @@ -CORE +FUTURE main.c --pointer-check --bounds-check +^EXIT=10$ ^SIGNAL=0$ -^Counterexample:$ ^VERIFICATION FAILED$ -- ^warning: ignoring diff --git a/regression/cbmc-with-incr/Pointer_Arithmetic9/test.desc b/regression/cbmc-with-incr/Pointer_Arithmetic9/test.desc index 39c491ba8bb..873bd8d918c 100644 --- a/regression/cbmc-with-incr/Pointer_Arithmetic9/test.desc +++ b/regression/cbmc-with-incr/Pointer_Arithmetic9/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_Assume1/test.desc b/regression/cbmc-with-incr/Pointer_Assume1/test.desc index a27d6e3414c..fb6666914d4 100644 --- a/regression/cbmc-with-incr/Pointer_Assume1/test.desc +++ b/regression/cbmc-with-incr/Pointer_Assume1/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_array1/test.desc b/regression/cbmc-with-incr/Pointer_array1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Pointer_array1/test.desc +++ b/regression/cbmc-with-incr/Pointer_array1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_array2/test.desc b/regression/cbmc-with-incr/Pointer_array2/test.desc index 52168c7eba4..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Pointer_array2/test.desc +++ b/regression/cbmc-with-incr/Pointer_array2/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_byte_extract1/test.desc b/regression/cbmc-with-incr/Pointer_byte_extract1/test.desc index 12fc8ce06e1..8681f1ad0e1 100644 --- a/regression/cbmc-with-incr/Pointer_byte_extract1/test.desc +++ b/regression/cbmc-with-incr/Pointer_byte_extract1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_byte_extract2/test.desc b/regression/cbmc-with-incr/Pointer_byte_extract2/test.desc index ad9c2b40bd5..2b370199c4c 100644 --- a/regression/cbmc-with-incr/Pointer_byte_extract2/test.desc +++ b/regression/cbmc-with-incr/Pointer_byte_extract2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --all-properties --little-endian ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Pointer_byte_extract3/test.desc b/regression/cbmc-with-incr/Pointer_byte_extract3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Pointer_byte_extract3/test.desc +++ b/regression/cbmc-with-incr/Pointer_byte_extract3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_byte_extract4/test.desc b/regression/cbmc-with-incr/Pointer_byte_extract4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Pointer_byte_extract4/test.desc +++ b/regression/cbmc-with-incr/Pointer_byte_extract4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_byte_extract5/test.desc b/regression/cbmc-with-incr/Pointer_byte_extract5/test.desc index 47c1a75edbe..a3e0bed53f3 100644 --- a/regression/cbmc-with-incr/Pointer_byte_extract5/test.desc +++ b/regression/cbmc-with-incr/Pointer_byte_extract5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --all-properties --bounds-check --32 ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Pointer_byte_extract6/test.desc b/regression/cbmc-with-incr/Pointer_byte_extract6/test.desc index 466da18b2b5..f98f52c58e3 100644 --- a/regression/cbmc-with-incr/Pointer_byte_extract6/test.desc +++ b/regression/cbmc-with-incr/Pointer_byte_extract6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_byte_extract7/test.desc b/regression/cbmc-with-incr/Pointer_byte_extract7/test.desc index 81ceb4c6dc0..97280db41b7 100644 --- a/regression/cbmc-with-incr/Pointer_byte_extract7/test.desc +++ b/regression/cbmc-with-incr/Pointer_byte_extract7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --big-endian ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_byte_extract8/test.desc b/regression/cbmc-with-incr/Pointer_byte_extract8/test.desc index a8688dd7116..58fb9a48fbe 100644 --- a/regression/cbmc-with-incr/Pointer_byte_extract8/test.desc +++ b/regression/cbmc-with-incr/Pointer_byte_extract8/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c --all-properties --bounds-check --32 --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Pointer_difference1/test.desc b/regression/cbmc-with-incr/Pointer_difference1/test.desc index 466da18b2b5..f98f52c58e3 100644 --- a/regression/cbmc-with-incr/Pointer_difference1/test.desc +++ b/regression/cbmc-with-incr/Pointer_difference1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Promotion1/test.desc b/regression/cbmc-with-incr/Promotion1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Promotion1/test.desc +++ b/regression/cbmc-with-incr/Promotion1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Promotion2/test.desc b/regression/cbmc-with-incr/Promotion2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Promotion2/test.desc +++ b/regression/cbmc-with-incr/Promotion2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Quantifiers1/test.desc b/regression/cbmc-with-incr/Quantifiers1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Quantifiers1/test.desc +++ b/regression/cbmc-with-incr/Quantifiers1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Recursion1/test.desc b/regression/cbmc-with-incr/Recursion1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Recursion1/test.desc +++ b/regression/cbmc-with-incr/Recursion1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Recursion2/test.desc b/regression/cbmc-with-incr/Recursion2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Recursion2/test.desc +++ b/regression/cbmc-with-incr/Recursion2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Recursion3/test.desc b/regression/cbmc-with-incr/Recursion3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Recursion3/test.desc +++ b/regression/cbmc-with-incr/Recursion3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Recursion4/test.desc b/regression/cbmc-with-incr/Recursion4/test.desc index cbd90510599..415020cf03f 100644 --- a/regression/cbmc-with-incr/Recursion4/test.desc +++ b/regression/cbmc-with-incr/Recursion4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-propagation ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Recursion5/test.desc b/regression/cbmc-with-incr/Recursion5/test.desc index 8e070292fba..1c9b5265bd0 100644 --- a/regression/cbmc-with-incr/Recursion5/test.desc +++ b/regression/cbmc-with-incr/Recursion5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --earliest-loop-exit ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Recursion6/test.desc b/regression/cbmc-with-incr/Recursion6/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Recursion6/test.desc +++ b/regression/cbmc-with-incr/Recursion6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Sideeffects1/test.desc b/regression/cbmc-with-incr/Sideeffects1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Sideeffects1/test.desc +++ b/regression/cbmc-with-incr/Sideeffects1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Sideeffects2/test.desc b/regression/cbmc-with-incr/Sideeffects2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Sideeffects2/test.desc +++ b/regression/cbmc-with-incr/Sideeffects2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Sideeffects3/test.desc b/regression/cbmc-with-incr/Sideeffects3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Sideeffects3/test.desc +++ b/regression/cbmc-with-incr/Sideeffects3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Sideeffects4/test.desc b/regression/cbmc-with-incr/Sideeffects4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Sideeffects4/test.desc +++ b/regression/cbmc-with-incr/Sideeffects4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Sideeffects5/test.desc b/regression/cbmc-with-incr/Sideeffects5/test.desc index e69488b2e66..2e26534178b 100644 --- a/regression/cbmc-with-incr/Sideeffects5/test.desc +++ b/regression/cbmc-with-incr/Sideeffects5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --div-by-zero-check ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Sideeffects6/test.desc b/regression/cbmc-with-incr/Sideeffects6/test.desc index e69488b2e66..2e26534178b 100644 --- a/regression/cbmc-with-incr/Sideeffects6/test.desc +++ b/regression/cbmc-with-incr/Sideeffects6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --div-by-zero-check ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Static2/test.desc b/regression/cbmc-with-incr/Static2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Static2/test.desc +++ b/regression/cbmc-with-incr/Static2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Static_Functions1/test.desc b/regression/cbmc-with-incr/Static_Functions1/test.desc index 8a09111c3b1..de55fd28989 100644 --- a/regression/cbmc-with-incr/Static_Functions1/test.desc +++ b/regression/cbmc-with-incr/Static_Functions1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE file1.c file2.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/String1/test.desc b/regression/cbmc-with-incr/String1/test.desc index 96c9b4bcd7b..b1749fa8cd6 100644 --- a/regression/cbmc-with-incr/String1/test.desc +++ b/regression/cbmc-with-incr/String1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check --bounds-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/String2/test.desc b/regression/cbmc-with-incr/String2/test.desc index 75352ab9ea5..f632dbb059b 100644 --- a/regression/cbmc-with-incr/String2/test.desc +++ b/regression/cbmc-with-incr/String2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check --bounds-check ^EXIT=10$ diff --git a/regression/cbmc-with-incr/String3/test.desc b/regression/cbmc-with-incr/String3/test.desc index e19d0a66341..f632dbb059b 100644 --- a/regression/cbmc-with-incr/String3/test.desc +++ b/regression/cbmc-with-incr/String3/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c --pointer-check --bounds-check ^EXIT=10$ diff --git a/regression/cbmc-with-incr/String4/test.desc b/regression/cbmc-with-incr/String4/test.desc index 96c9b4bcd7b..b1749fa8cd6 100644 --- a/regression/cbmc-with-incr/String4/test.desc +++ b/regression/cbmc-with-incr/String4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check --bounds-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/String5/test.desc b/regression/cbmc-with-incr/String5/test.desc index 96c9b4bcd7b..b1749fa8cd6 100644 --- a/regression/cbmc-with-incr/String5/test.desc +++ b/regression/cbmc-with-incr/String5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check --bounds-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/String6/test.desc b/regression/cbmc-with-incr/String6/test.desc index 96c9b4bcd7b..b1749fa8cd6 100644 --- a/regression/cbmc-with-incr/String6/test.desc +++ b/regression/cbmc-with-incr/String6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check --bounds-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/String7/test.desc b/regression/cbmc-with-incr/String7/test.desc index 96c9b4bcd7b..b1749fa8cd6 100644 --- a/regression/cbmc-with-incr/String7/test.desc +++ b/regression/cbmc-with-incr/String7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check --bounds-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/String_Literal1/test.desc b/regression/cbmc-with-incr/String_Literal1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/String_Literal1/test.desc +++ b/regression/cbmc-with-incr/String_Literal1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Bytewise1/test.desc b/regression/cbmc-with-incr/Struct_Bytewise1/test.desc index 03ad7634d7c..da870488cb7 100644 --- a/regression/cbmc-with-incr/Struct_Bytewise1/test.desc +++ b/regression/cbmc-with-incr/Struct_Bytewise1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE struct_bytewise.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Bytewise2/test.desc b/regression/cbmc-with-incr/Struct_Bytewise2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Struct_Bytewise2/test.desc +++ b/regression/cbmc-with-incr/Struct_Bytewise2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Initialization1/test.desc b/regression/cbmc-with-incr/Struct_Initialization1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Struct_Initialization1/test.desc +++ b/regression/cbmc-with-incr/Struct_Initialization1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Initialization10/test.desc b/regression/cbmc-with-incr/Struct_Initialization10/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Struct_Initialization10/test.desc +++ b/regression/cbmc-with-incr/Struct_Initialization10/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Initialization2/test.desc b/regression/cbmc-with-incr/Struct_Initialization2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Struct_Initialization2/test.desc +++ b/regression/cbmc-with-incr/Struct_Initialization2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Initialization3/test.desc b/regression/cbmc-with-incr/Struct_Initialization3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Struct_Initialization3/test.desc +++ b/regression/cbmc-with-incr/Struct_Initialization3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Initialization4/test.desc b/regression/cbmc-with-incr/Struct_Initialization4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Struct_Initialization4/test.desc +++ b/regression/cbmc-with-incr/Struct_Initialization4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Initialization5/test.desc b/regression/cbmc-with-incr/Struct_Initialization5/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Struct_Initialization5/test.desc +++ b/regression/cbmc-with-incr/Struct_Initialization5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Initialization6/test.desc b/regression/cbmc-with-incr/Struct_Initialization6/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Struct_Initialization6/test.desc +++ b/regression/cbmc-with-incr/Struct_Initialization6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Initialization7/test.desc b/regression/cbmc-with-incr/Struct_Initialization7/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Struct_Initialization7/test.desc +++ b/regression/cbmc-with-incr/Struct_Initialization7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Initialization9/test.desc b/regression/cbmc-with-incr/Struct_Initialization9/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Struct_Initialization9/test.desc +++ b/regression/cbmc-with-incr/Struct_Initialization9/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Struct_Padding1/test.desc b/regression/cbmc-with-incr/Struct_Padding1/test.desc index 0098f266ed3..7d82bcc8fbb 100644 --- a/regression/cbmc-with-incr/Struct_Padding1/test.desc +++ b/regression/cbmc-with-incr/Struct_Padding1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --32 ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Typecast1/test.desc b/regression/cbmc-with-incr/Typecast1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Typecast1/test.desc +++ b/regression/cbmc-with-incr/Typecast1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Typecast2/test.desc b/regression/cbmc-with-incr/Typecast2/test.desc index 1af9f7644e7..2f9be87fcce 100644 --- a/regression/cbmc-with-incr/Typecast2/test.desc +++ b/regression/cbmc-with-incr/Typecast2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-propagation --64 ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Undefined_Function1/test.desc b/regression/cbmc-with-incr/Undefined_Function1/test.desc index d29ea2fc36e..56d593a23d6 100644 --- a/regression/cbmc-with-incr/Undefined_Function1/test.desc +++ b/regression/cbmc-with-incr/Undefined_Function1/test.desc @@ -1,9 +1,9 @@ -CORE +FUTURE main.c +^EXIT=10$ ^SIGNAL=0$ ^\*\*\*\* WARNING: no body for function f$ -^Counterexample:$ ^VERIFICATION FAILED$ -- ^warning: ignoring diff --git a/regression/cbmc-with-incr/Union_Initialization1/test.desc b/regression/cbmc-with-incr/Union_Initialization1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Union_Initialization1/test.desc +++ b/regression/cbmc-with-incr/Union_Initialization1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Unwinding_Locality1/test.desc b/regression/cbmc-with-incr/Unwinding_Locality1/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/Unwinding_Locality1/test.desc +++ b/regression/cbmc-with-incr/Unwinding_Locality1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Visual_Studio_Types1/test.desc b/regression/cbmc-with-incr/Visual_Studio_Types1/test.desc index e59b02c324d..481c817218a 100644 --- a/regression/cbmc-with-incr/Visual_Studio_Types1/test.desc +++ b/regression/cbmc-with-incr/Visual_Studio_Types1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --i386-win32 ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Visual_Studio_Types2/test.desc b/regression/cbmc-with-incr/Visual_Studio_Types2/test.desc index 7ce542782ab..7b07e0dc555 100644 --- a/regression/cbmc-with-incr/Visual_Studio_Types2/test.desc +++ b/regression/cbmc-with-incr/Visual_Studio_Types2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --winx64 ^EXIT=0$ diff --git a/regression/cbmc-with-incr/Volatile1/test.desc b/regression/cbmc-with-incr/Volatile1/test.desc index 6b765c70f48..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/Volatile1/test.desc +++ b/regression/cbmc-with-incr/Volatile1/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/Zero_Initialization1/test.desc b/regression/cbmc-with-incr/Zero_Initialization1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/Zero_Initialization1/test.desc +++ b/regression/cbmc-with-incr/Zero_Initialization1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/__func__1/test.desc b/regression/cbmc-with-incr/__func__1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/__func__1/test.desc +++ b/regression/cbmc-with-incr/__func__1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/abs1/test.desc b/regression/cbmc-with-incr/abs1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/abs1/test.desc +++ b/regression/cbmc-with-incr/abs1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/argv1/test.desc b/regression/cbmc-with-incr/argv1/test.desc index da239c1965b..6550ede8bf0 100644 --- a/regression/cbmc-with-incr/argv1/test.desc +++ b/regression/cbmc-with-incr/argv1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --bounds-check --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/atomic_section_seq1/test.desc b/regression/cbmc-with-incr/atomic_section_seq1/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/atomic_section_seq1/test.desc +++ b/regression/cbmc-with-incr/atomic_section_seq1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/char1/test.desc b/regression/cbmc-with-incr/char1/test.desc index ec0541ac9fc..a269860affb 100644 --- a/regression/cbmc-with-incr/char1/test.desc +++ b/regression/cbmc-with-incr/char1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unsigned-char ^EXIT=0$ diff --git a/regression/cbmc-with-incr/character_handling1/test.desc b/regression/cbmc-with-incr/character_handling1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/character_handling1/test.desc +++ b/regression/cbmc-with-incr/character_handling1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/comma1/test.desc b/regression/cbmc-with-incr/comma1/test.desc index 12fc8ce06e1..8681f1ad0e1 100644 --- a/regression/cbmc-with-incr/comma1/test.desc +++ b/regression/cbmc-with-incr/comma1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/complex1/test.desc b/regression/cbmc-with-incr/complex1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/complex1/test.desc +++ b/regression/cbmc-with-incr/complex1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/compound_literal1/test.desc b/regression/cbmc-with-incr/compound_literal1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/compound_literal1/test.desc +++ b/regression/cbmc-with-incr/compound_literal1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/const_ptr1/test.desc b/regression/cbmc-with-incr/const_ptr1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/const_ptr1/test.desc +++ b/regression/cbmc-with-incr/const_ptr1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/enum1/test.desc b/regression/cbmc-with-incr/enum1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/enum1/test.desc +++ b/regression/cbmc-with-incr/enum1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/enum2/test.desc b/regression/cbmc-with-incr/enum2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/enum2/test.desc +++ b/regression/cbmc-with-incr/enum2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/enum3/test.desc b/regression/cbmc-with-incr/enum3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/enum3/test.desc +++ b/regression/cbmc-with-incr/enum3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/enum4/test.desc b/regression/cbmc-with-incr/enum4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/enum4/test.desc +++ b/regression/cbmc-with-incr/enum4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_array1/test.desc b/regression/cbmc-with-incr/equality_through_array1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_array1/test.desc +++ b/regression/cbmc-with-incr/equality_through_array1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_array2/test.desc b/regression/cbmc-with-incr/equality_through_array2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_array2/test.desc +++ b/regression/cbmc-with-incr/equality_through_array2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_array3/test.desc b/regression/cbmc-with-incr/equality_through_array3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_array3/test.desc +++ b/regression/cbmc-with-incr/equality_through_array3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_array4/test.desc b/regression/cbmc-with-incr/equality_through_array4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_array4/test.desc +++ b/regression/cbmc-with-incr/equality_through_array4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_array5/test.desc b/regression/cbmc-with-incr/equality_through_array5/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_array5/test.desc +++ b/regression/cbmc-with-incr/equality_through_array5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_array6/test.desc b/regression/cbmc-with-incr/equality_through_array6/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_array6/test.desc +++ b/regression/cbmc-with-incr/equality_through_array6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_array_of_struct1/test.desc b/regression/cbmc-with-incr/equality_through_array_of_struct1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_array_of_struct1/test.desc +++ b/regression/cbmc-with-incr/equality_through_array_of_struct1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_array_of_struct2/test.desc b/regression/cbmc-with-incr/equality_through_array_of_struct2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_array_of_struct2/test.desc +++ b/regression/cbmc-with-incr/equality_through_array_of_struct2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_array_of_struct3/test.desc b/regression/cbmc-with-incr/equality_through_array_of_struct3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_array_of_struct3/test.desc +++ b/regression/cbmc-with-incr/equality_through_array_of_struct3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_array_of_struct4/test.desc b/regression/cbmc-with-incr/equality_through_array_of_struct4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_array_of_struct4/test.desc +++ b/regression/cbmc-with-incr/equality_through_array_of_struct4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_struct1/test.desc b/regression/cbmc-with-incr/equality_through_struct1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_struct1/test.desc +++ b/regression/cbmc-with-incr/equality_through_struct1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_struct2/test.desc b/regression/cbmc-with-incr/equality_through_struct2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_struct2/test.desc +++ b/regression/cbmc-with-incr/equality_through_struct2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_struct3/test.desc b/regression/cbmc-with-incr/equality_through_struct3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_struct3/test.desc +++ b/regression/cbmc-with-incr/equality_through_struct3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_struct4/test.desc b/regression/cbmc-with-incr/equality_through_struct4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_struct4/test.desc +++ b/regression/cbmc-with-incr/equality_through_struct4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_struct5/test.desc b/regression/cbmc-with-incr/equality_through_struct5/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_struct5/test.desc +++ b/regression/cbmc-with-incr/equality_through_struct5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_struct_containing_arrays1/test.desc b/regression/cbmc-with-incr/equality_through_struct_containing_arrays1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_struct_containing_arrays1/test.desc +++ b/regression/cbmc-with-incr/equality_through_struct_containing_arrays1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_struct_containing_arrays2/test.desc b/regression/cbmc-with-incr/equality_through_struct_containing_arrays2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_struct_containing_arrays2/test.desc +++ b/regression/cbmc-with-incr/equality_through_struct_containing_arrays2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_struct_containing_arrays3/test.desc b/regression/cbmc-with-incr/equality_through_struct_containing_arrays3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_struct_containing_arrays3/test.desc +++ b/regression/cbmc-with-incr/equality_through_struct_containing_arrays3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_union1/test.desc b/regression/cbmc-with-incr/equality_through_union1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_union1/test.desc +++ b/regression/cbmc-with-incr/equality_through_union1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_union2/test.desc b/regression/cbmc-with-incr/equality_through_union2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_union2/test.desc +++ b/regression/cbmc-with-incr/equality_through_union2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/equality_through_union3/test.desc b/regression/cbmc-with-incr/equality_through_union3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/equality_through_union3/test.desc +++ b/regression/cbmc-with-incr/equality_through_union3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/exit1/test.desc b/regression/cbmc-with-incr/exit1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/exit1/test.desc +++ b/regression/cbmc-with-incr/exit1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/extern_initialization1/test.desc b/regression/cbmc-with-incr/extern_initialization1/test.desc index 73b0a6abe16..eec83417ba2 100644 --- a/regression/cbmc-with-incr/extern_initialization1/test.desc +++ b/regression/cbmc-with-incr/extern_initialization1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE file1.c file2.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/extern_initialization2/test.desc b/regression/cbmc-with-incr/extern_initialization2/test.desc index 8a09111c3b1..de55fd28989 100644 --- a/regression/cbmc-with-incr/extern_initialization2/test.desc +++ b/regression/cbmc-with-incr/extern_initialization2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE file1.c file2.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/for-break1/test.desc b/regression/cbmc-with-incr/for-break1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/for-break1/test.desc +++ b/regression/cbmc-with-incr/for-break1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/for1/test.desc b/regression/cbmc-with-incr/for1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/for1/test.desc +++ b/regression/cbmc-with-incr/for1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/for2/test.desc b/regression/cbmc-with-incr/for2/test.desc index ae05c84a478..6b3369f42a1 100644 --- a/regression/cbmc-with-incr/for2/test.desc +++ b/regression/cbmc-with-incr/for2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/for3/test.desc b/regression/cbmc-with-incr/for3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/for3/test.desc +++ b/regression/cbmc-with-incr/for3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/function_option1/test.desc b/regression/cbmc-with-incr/function_option1/test.desc index 521d7365c2f..43cc7501c6e 100644 --- a/regression/cbmc-with-incr/function_option1/test.desc +++ b/regression/cbmc-with-incr/function_option1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --function f ^EXIT=0$ diff --git a/regression/cbmc-with-incr/gcc_c99-bool-1/test.desc b/regression/cbmc-with-incr/gcc_c99-bool-1/test.desc index d82c02459fc..1a11f07f85c 100644 --- a/regression/cbmc-with-incr/gcc_c99-bool-1/test.desc +++ b/regression/cbmc-with-incr/gcc_c99-bool-1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE c99-bool-1.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/gcc_conditional_expr1/test.desc b/regression/cbmc-with-incr/gcc_conditional_expr1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/gcc_conditional_expr1/test.desc +++ b/regression/cbmc-with-incr/gcc_conditional_expr1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/gcc_local_label1/test.desc b/regression/cbmc-with-incr/gcc_local_label1/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/gcc_local_label1/test.desc +++ b/regression/cbmc-with-incr/gcc_local_label1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/gcc_statement_expression1/test.desc b/regression/cbmc-with-incr/gcc_statement_expression1/test.desc index 9c96469df12..fb6666914d4 100644 --- a/regression/cbmc-with-incr/gcc_statement_expression1/test.desc +++ b/regression/cbmc-with-incr/gcc_statement_expression1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/gcc_statement_expression2/test.desc b/regression/cbmc-with-incr/gcc_statement_expression2/test.desc index 9c96469df12..fb6666914d4 100644 --- a/regression/cbmc-with-incr/gcc_statement_expression2/test.desc +++ b/regression/cbmc-with-incr/gcc_statement_expression2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/gcc_statement_expression3/test.desc b/regression/cbmc-with-incr/gcc_statement_expression3/test.desc index 9c96469df12..fb6666914d4 100644 --- a/regression/cbmc-with-incr/gcc_statement_expression3/test.desc +++ b/regression/cbmc-with-incr/gcc_statement_expression3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/gcc_statement_expression4/test.desc b/regression/cbmc-with-incr/gcc_statement_expression4/test.desc index 9c96469df12..fb6666914d4 100644 --- a/regression/cbmc-with-incr/gcc_statement_expression4/test.desc +++ b/regression/cbmc-with-incr/gcc_statement_expression4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/gcc_statement_expression5/test.desc b/regression/cbmc-with-incr/gcc_statement_expression5/test.desc index 9c96469df12..fb6666914d4 100644 --- a/regression/cbmc-with-incr/gcc_statement_expression5/test.desc +++ b/regression/cbmc-with-incr/gcc_statement_expression5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/gcc_vector1/test.desc b/regression/cbmc-with-incr/gcc_vector1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/gcc_vector1/test.desc +++ b/regression/cbmc-with-incr/gcc_vector1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/gcc_vector2/test.desc b/regression/cbmc-with-incr/gcc_vector2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/gcc_vector2/test.desc +++ b/regression/cbmc-with-incr/gcc_vector2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/goto1/test.desc b/regression/cbmc-with-incr/goto1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/goto1/test.desc +++ b/regression/cbmc-with-incr/goto1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/goto2/test.desc b/regression/cbmc-with-incr/goto2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/goto2/test.desc +++ b/regression/cbmc-with-incr/goto2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/goto3/test.desc b/regression/cbmc-with-incr/goto3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/goto3/test.desc +++ b/regression/cbmc-with-incr/goto3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/goto4/test.desc b/regression/cbmc-with-incr/goto4/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/goto4/test.desc +++ b/regression/cbmc-with-incr/goto4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/if1/test.desc b/regression/cbmc-with-incr/if1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/if1/test.desc +++ b/regression/cbmc-with-incr/if1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/if2/test.desc b/regression/cbmc-with-incr/if2/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/if2/test.desc +++ b/regression/cbmc-with-incr/if2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/if3/test.desc b/regression/cbmc-with-incr/if3/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/if3/test.desc +++ b/regression/cbmc-with-incr/if3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/if4/test.desc b/regression/cbmc-with-incr/if4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/if4/test.desc +++ b/regression/cbmc-with-incr/if4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/inline1/test.desc b/regression/cbmc-with-incr/inline1/test.desc index af20f90c655..b302e1734c3 100644 --- a/regression/cbmc-with-incr/inline1/test.desc +++ b/regression/cbmc-with-incr/inline1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c module.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/int-to-float1/test.desc b/regression/cbmc-with-incr/int-to-float1/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/int-to-float1/test.desc +++ b/regression/cbmc-with-incr/int-to-float1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/int-to-float2/test.desc b/regression/cbmc-with-incr/int-to-float2/test.desc index b7d95a28215..3d655761041 100644 --- a/regression/cbmc-with-incr/int-to-float2/test.desc +++ b/regression/cbmc-with-incr/int-to-float2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --floatbv ^EXIT=0$ diff --git a/regression/cbmc-with-incr/locations1/test.desc b/regression/cbmc-with-incr/locations1/test.desc index 12c44d464cd..2521c59483c 100644 --- a/regression/cbmc-with-incr/locations1/test.desc +++ b/regression/cbmc-with-incr/locations1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --signed-overflow-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/noop1/test.desc b/regression/cbmc-with-incr/noop1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/noop1/test.desc +++ b/regression/cbmc-with-incr/noop1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/null1/test.desc b/regression/cbmc-with-incr/null1/test.desc index 376d43d5dfa..b7c95d95569 100644 --- a/regression/cbmc-with-incr/null1/test.desc +++ b/regression/cbmc-with-incr/null1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --no-simplify ^EXIT=0$ diff --git a/regression/cbmc-with-incr/null2/test.desc b/regression/cbmc-with-incr/null2/test.desc index 1d6654a4859..25a63f0fbdc 100644 --- a/regression/cbmc-with-incr/null2/test.desc +++ b/regression/cbmc-with-incr/null2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/offsetof1/test.desc b/regression/cbmc-with-incr/offsetof1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/offsetof1/test.desc +++ b/regression/cbmc-with-incr/offsetof1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/pipe1/test.desc b/regression/cbmc-with-incr/pipe1/test.desc index 0d1e9fa0dba..0a7701cc8f6 100644 --- a/regression/cbmc-with-incr/pipe1/test.desc +++ b/regression/cbmc-with-incr/pipe1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --all-properties ^EXIT=10$ diff --git a/regression/cbmc-with-incr/realloc1/test.desc b/regression/cbmc-with-incr/realloc1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/realloc1/test.desc +++ b/regression/cbmc-with-incr/realloc1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/return1/test.desc b/regression/cbmc-with-incr/return1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/return1/test.desc +++ b/regression/cbmc-with-incr/return1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/return3/test.desc b/regression/cbmc-with-incr/return3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/return3/test.desc +++ b/regression/cbmc-with-incr/return3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/return4/test.desc b/regression/cbmc-with-incr/return4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/return4/test.desc +++ b/regression/cbmc-with-incr/return4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/return5/test.desc b/regression/cbmc-with-incr/return5/test.desc index 6de79559914..b9b38f2c4b4 100644 --- a/regression/cbmc-with-incr/return5/test.desc +++ b/regression/cbmc-with-incr/return5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/strtol1/test.desc b/regression/cbmc-with-incr/strtol1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/strtol1/test.desc +++ b/regression/cbmc-with-incr/strtol1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/strtol2/test.desc b/regression/cbmc-with-incr/strtol2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/strtol2/test.desc +++ b/regression/cbmc-with-incr/strtol2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/struct1/test.desc b/regression/cbmc-with-incr/struct1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/struct1/test.desc +++ b/regression/cbmc-with-incr/struct1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/struct3/test.desc b/regression/cbmc-with-incr/struct3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/struct3/test.desc +++ b/regression/cbmc-with-incr/struct3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/struct4/test.desc b/regression/cbmc-with-incr/struct4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/struct4/test.desc +++ b/regression/cbmc-with-incr/struct4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/struct6/test.desc b/regression/cbmc-with-incr/struct6/test.desc index da239c1965b..6550ede8bf0 100644 --- a/regression/cbmc-with-incr/struct6/test.desc +++ b/regression/cbmc-with-incr/struct6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --bounds-check --pointer-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/struct7/test.desc b/regression/cbmc-with-incr/struct7/test.desc index 96c9b4bcd7b..b1749fa8cd6 100644 --- a/regression/cbmc-with-incr/struct7/test.desc +++ b/regression/cbmc-with-incr/struct7/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --pointer-check --bounds-check ^EXIT=0$ diff --git a/regression/cbmc-with-incr/struct8/test.desc b/regression/cbmc-with-incr/struct8/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/struct8/test.desc +++ b/regression/cbmc-with-incr/struct8/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/switch1/test.desc b/regression/cbmc-with-incr/switch1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/switch1/test.desc +++ b/regression/cbmc-with-incr/switch1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/switch2/test.desc b/regression/cbmc-with-incr/switch2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/switch2/test.desc +++ b/regression/cbmc-with-incr/switch2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/switch3/test.desc b/regression/cbmc-with-incr/switch3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/switch3/test.desc +++ b/regression/cbmc-with-incr/switch3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/switch4/test.desc b/regression/cbmc-with-incr/switch4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/switch4/test.desc +++ b/regression/cbmc-with-incr/switch4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/switch5/test.desc b/regression/cbmc-with-incr/switch5/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/switch5/test.desc +++ b/regression/cbmc-with-incr/switch5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/switch6/test.desc b/regression/cbmc-with-incr/switch6/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/switch6/test.desc +++ b/regression/cbmc-with-incr/switch6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/union1/test.desc b/regression/cbmc-with-incr/union1/test.desc index 52168c7eba4..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/union1/test.desc +++ b/regression/cbmc-with-incr/union1/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/union2/test.desc b/regression/cbmc-with-incr/union2/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/union2/test.desc +++ b/regression/cbmc-with-incr/union2/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/union3/test.desc b/regression/cbmc-with-incr/union3/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/union3/test.desc +++ b/regression/cbmc-with-incr/union3/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/union4/test.desc b/regression/cbmc-with-incr/union4/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/union4/test.desc +++ b/regression/cbmc-with-incr/union4/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/union5/test.desc b/regression/cbmc-with-incr/union5/test.desc index 33900ad2b78..4aa47233d39 100644 --- a/regression/cbmc-with-incr/union5/test.desc +++ b/regression/cbmc-with-incr/union5/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=10$ diff --git a/regression/cbmc-with-incr/union6/test.desc b/regression/cbmc-with-incr/union6/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/union6/test.desc +++ b/regression/cbmc-with-incr/union6/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/unsigned_char1/test.desc b/regression/cbmc-with-incr/unsigned_char1/test.desc index 0f995fec257..c61e9a874a1 100644 --- a/regression/cbmc-with-incr/unsigned_char1/test.desc +++ b/regression/cbmc-with-incr/unsigned_char1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c --unsigned-char ^EXIT=0$ diff --git a/regression/cbmc-with-incr/va_list1/test.desc b/regression/cbmc-with-incr/va_list1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/va_list1/test.desc +++ b/regression/cbmc-with-incr/va_list1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/va_list2/test.desc b/regression/cbmc-with-incr/va_list2/test.desc index 52168c7eba4..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/va_list2/test.desc +++ b/regression/cbmc-with-incr/va_list2/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/void_ifthenelse/test.desc b/regression/cbmc-with-incr/void_ifthenelse/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/void_ifthenelse/test.desc +++ b/regression/cbmc-with-incr/void_ifthenelse/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ diff --git a/regression/cbmc-with-incr/while1/test.desc b/regression/cbmc-with-incr/while1/test.desc index 9efefbc7362..aea17ee4da8 100644 --- a/regression/cbmc-with-incr/while1/test.desc +++ b/regression/cbmc-with-incr/while1/test.desc @@ -1,4 +1,4 @@ -CORE +FUTURE main.c ^EXIT=0$ From 64a7ca934e8a14177e0fd92bbf9597f92083b704 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Fri, 19 Mar 2021 13:15:58 +0000 Subject: [PATCH 12/25] symtab2gb should populate configt For as long as goto-programs/ uses util/c_types.h, expression types generated during goto-program construction rely on bit widths to be configured. --- scripts/expected_doxygen_warnings.txt | 2 +- src/symtab2gb/symtab2gb_parse_options.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/expected_doxygen_warnings.txt b/scripts/expected_doxygen_warnings.txt index 22118e773e8..affa60f29cb 100644 --- a/scripts/expected_doxygen_warnings.txt +++ b/scripts/expected_doxygen_warnings.txt @@ -23,7 +23,7 @@ warning: Included by graph for 'goto_functions.h' not generated, too many nodes warning: Included by graph for 'goto_model.h' not generated, too many nodes (111), threshold is 60. Consider increasing DOT_GRAPH_MAX_NODES. warning: Included by graph for 'arith_tools.h' not generated, too many nodes (181), threshold is 60. Consider increasing DOT_GRAPH_MAX_NODES. warning: Included by graph for 'c_types.h' not generated, too many nodes (141), threshold is 60. Consider increasing DOT_GRAPH_MAX_NODES. -warning: Included by graph for 'config.h' not generated, too many nodes (87), threshold is 60. Consider increasing DOT_GRAPH_MAX_NODES. +warning: Included by graph for 'config.h' not generated, too many nodes (88), threshold is 60. Consider increasing DOT_GRAPH_MAX_NODES. warning: Included by graph for 'exception_utils.h' not generated, too many nodes (61), threshold is 60. Consider increasing DOT_GRAPH_MAX_NODES. warning: Included by graph for 'expr.h' not generated, too many nodes (87), threshold is 60. Consider increasing DOT_GRAPH_MAX_NODES. warning: Included by graph for 'expr_util.h' not generated, too many nodes (61), threshold is 60. Consider increasing DOT_GRAPH_MAX_NODES. diff --git a/src/symtab2gb/symtab2gb_parse_options.cpp b/src/symtab2gb/symtab2gb_parse_options.cpp index 9f42956a915..39ca783e37d 100644 --- a/src/symtab2gb/symtab2gb_parse_options.cpp +++ b/src/symtab2gb/symtab2gb_parse_options.cpp @@ -17,6 +17,8 @@ Author: Diffblue Ltd. #include #include #include + +#include #include #include #include @@ -81,6 +83,7 @@ static void run_symtab2gb( throw invalid_source_file_exceptiont{ "failed to typecheck symbol table from file '" + symtab_filename + "'"}; } + config.set_from_symbol_table(symtab); goto_modelt goto_model{}; goto_model.symbol_table = symtab; goto_convert(goto_model, message_handler); @@ -110,6 +113,7 @@ int symtab2gb_parse_optionst::doit() { gb_filename = cmdline.get_value(SYMTAB2GB_OUT_FILE_OPT); } + config.set(cmdline); run_symtab2gb(symtab_filenames, gb_filename); return CPROVER_EXIT_SUCCESS; } From e3aabfaaf1ad5cf5735596c7c8cf98dec988d02c Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Mon, 15 Mar 2021 10:54:30 +0000 Subject: [PATCH 13/25] diff_to_added_lines: report all errors on stderr The Python script silently failed when invoked from run_diff.sh, which redirects stdout to a file, when unidiff was not available. --- scripts/diff_to_added_lines.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/scripts/diff_to_added_lines.py b/scripts/diff_to_added_lines.py index 2b4096d3978..d333b000954 100755 --- a/scripts/diff_to_added_lines.py +++ b/scripts/diff_to_added_lines.py @@ -1,13 +1,17 @@ #!/usr/bin/env python from __future__ import print_function +import sys + +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) def diff_to_added_lines(diff_file, repository_root, out_stream): try: import unidiff except ImportError: - print("diff_to_added_lines.py requires unidiff, use `pip install --user unidiff` to install") + eprint("diff_to_added_lines.py requires unidiff, use `pip install --user unidiff` to install") sys.exit(1) import os.path @@ -36,12 +40,9 @@ def diff_to_added_lines(diff_file, repository_root, out_stream): json.dump(added_lines, out_stream) if __name__ == "__main__": - - import sys - if len(sys.argv) != 3: - print("diff_to_added_lines.py: converts a unified-diff file into a JSON dictionary mapping filenames onto an array of added or modified line numbers", file=sys.stderr) - print("Usage: diff_to_added_lines.py diff.patch repository_root_directory", file=sys.stderr) + eprint("diff_to_added_lines.py: converts a unified-diff file into a JSON dictionary mapping filenames onto an array of added or modified line numbers") + eprint("Usage: diff_to_added_lines.py diff.patch repository_root_directory") sys.exit(1) From 585b3592f54625506bdb2a51fc8cefb76e0d32ae Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Mon, 15 Mar 2021 11:52:00 +0000 Subject: [PATCH 14/25] cpplint strictly requires Python 2 Using Python 3 (as is the default GitHub's Ubuntu 20.04) requires merging changes from https://github.com/cpplint/cpplint, which is a larger undertaking. --- .github/workflows/pull-request-checks.yaml | 3 ++- scripts/cpplint.py | 2 +- scripts/diff_to_added_lines.py | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pull-request-checks.yaml b/.github/workflows/pull-request-checks.yaml index 8e82d9b28de..f8218b86da1 100644 --- a/.github/workflows/pull-request-checks.yaml +++ b/.github/workflows/pull-request-checks.yaml @@ -364,7 +364,8 @@ jobs: # user input DEBIAN_FRONTEND: noninteractive run: | - pip install unidiff + sudo apt-get update + sudo apt-get install --no-install-recommends -yq python3-unidiff - name: Check updated lines of code meet linting standards env: BASE_BRANCH: ${{ github.base_ref }} diff --git a/scripts/cpplint.py b/scripts/cpplint.py index f963752b175..e9ba8b53f5a 100755 --- a/scripts/cpplint.py +++ b/scripts/cpplint.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- # # Copyright (c) 2009 Google Inc. All rights reserved. diff --git a/scripts/diff_to_added_lines.py b/scripts/diff_to_added_lines.py index d333b000954..7a37cab8c52 100755 --- a/scripts/diff_to_added_lines.py +++ b/scripts/diff_to_added_lines.py @@ -1,6 +1,5 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 -from __future__ import print_function import sys def eprint(*args, **kwargs): From ccce53c389fd72e69c56986eb4e9b4e9d0f5d7ca Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Wed, 17 Mar 2021 20:50:28 +0000 Subject: [PATCH 15/25] Add empty module_dependencies.txt to make the linter happy This check cannot be disabled. --- regression/cpp-linter/assert/module_dependencies.txt | 0 regression/cpp-linter/catch-cast/module_dependencies.txt | 0 regression/cpp-linter/class-decl-space/module_dependencies.txt | 0 regression/cpp-linter/do-while1/module_dependencies.txt | 0 regression/cpp-linter/do-while2/module_dependencies.txt | 0 .../cpp-linter/function-comment-header1/module_dependencies.txt | 0 .../cpp-linter/function-comment-header2/module_dependencies.txt | 0 .../cpp-linter/function-comment-header3/module_dependencies.txt | 0 .../cpp-linter/function-comment-header4/module_dependencies.txt | 0 .../cpp-linter/function-comment-header5/module_dependencies.txt | 0 .../cpp-linter/function-comment-header6/module_dependencies.txt | 0 .../cpp-linter/function-comment-header7/module_dependencies.txt | 0 regression/cpp-linter/if-else1/module_dependencies.txt | 0 regression/cpp-linter/if-else2/module_dependencies.txt | 0 regression/cpp-linter/if-else3/module_dependencies.txt | 0 regression/cpp-linter/if-else4/module_dependencies.txt | 0 regression/cpp-linter/if-else5/module_dependencies.txt | 0 regression/cpp-linter/if-else6/module_dependencies.txt | 0 regression/cpp-linter/multi-line-comment/module_dependencies.txt | 0 .../cpp-linter/multi-line-function-call1/module_dependencies.txt | 0 .../cpp-linter/multi-line-function-call2/module_dependencies.txt | 0 .../cpp-linter/multi-line-function-call3/module_dependencies.txt | 0 regression/cpp-linter/multi-line-string1/module_dependencies.txt | 0 regression/cpp-linter/multi-line-string2/module_dependencies.txt | 0 regression/cpp-linter/namespace/module_dependencies.txt | 0 regression/cpp-linter/operator-spacing1/module_dependencies.txt | 0 regression/cpp-linter/operator-spacing2/module_dependencies.txt | 0 regression/cpp-linter/operator-spacing3/module_dependencies.txt | 0 regression/cpp-linter/override-final/module_dependencies.txt | 0 regression/cpp-linter/pointer-type1/module_dependencies.txt | 0 regression/cpp-linter/prefix-increment/module_dependencies.txt | 0 regression/cpp-linter/struct-inline-decl/module_dependencies.txt | 0 regression/cpp-linter/template-types/module_dependencies.txt | 0 regression/cpp-linter/throw/module_dependencies.txt | 0 34 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 regression/cpp-linter/assert/module_dependencies.txt create mode 100644 regression/cpp-linter/catch-cast/module_dependencies.txt create mode 100644 regression/cpp-linter/class-decl-space/module_dependencies.txt create mode 100644 regression/cpp-linter/do-while1/module_dependencies.txt create mode 100644 regression/cpp-linter/do-while2/module_dependencies.txt create mode 100644 regression/cpp-linter/function-comment-header1/module_dependencies.txt create mode 100644 regression/cpp-linter/function-comment-header2/module_dependencies.txt create mode 100644 regression/cpp-linter/function-comment-header3/module_dependencies.txt create mode 100644 regression/cpp-linter/function-comment-header4/module_dependencies.txt create mode 100644 regression/cpp-linter/function-comment-header5/module_dependencies.txt create mode 100644 regression/cpp-linter/function-comment-header6/module_dependencies.txt create mode 100644 regression/cpp-linter/function-comment-header7/module_dependencies.txt create mode 100644 regression/cpp-linter/if-else1/module_dependencies.txt create mode 100644 regression/cpp-linter/if-else2/module_dependencies.txt create mode 100644 regression/cpp-linter/if-else3/module_dependencies.txt create mode 100644 regression/cpp-linter/if-else4/module_dependencies.txt create mode 100644 regression/cpp-linter/if-else5/module_dependencies.txt create mode 100644 regression/cpp-linter/if-else6/module_dependencies.txt create mode 100644 regression/cpp-linter/multi-line-comment/module_dependencies.txt create mode 100644 regression/cpp-linter/multi-line-function-call1/module_dependencies.txt create mode 100644 regression/cpp-linter/multi-line-function-call2/module_dependencies.txt create mode 100644 regression/cpp-linter/multi-line-function-call3/module_dependencies.txt create mode 100644 regression/cpp-linter/multi-line-string1/module_dependencies.txt create mode 100644 regression/cpp-linter/multi-line-string2/module_dependencies.txt create mode 100644 regression/cpp-linter/namespace/module_dependencies.txt create mode 100644 regression/cpp-linter/operator-spacing1/module_dependencies.txt create mode 100644 regression/cpp-linter/operator-spacing2/module_dependencies.txt create mode 100644 regression/cpp-linter/operator-spacing3/module_dependencies.txt create mode 100644 regression/cpp-linter/override-final/module_dependencies.txt create mode 100644 regression/cpp-linter/pointer-type1/module_dependencies.txt create mode 100644 regression/cpp-linter/prefix-increment/module_dependencies.txt create mode 100644 regression/cpp-linter/struct-inline-decl/module_dependencies.txt create mode 100644 regression/cpp-linter/template-types/module_dependencies.txt create mode 100644 regression/cpp-linter/throw/module_dependencies.txt diff --git a/regression/cpp-linter/assert/module_dependencies.txt b/regression/cpp-linter/assert/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/catch-cast/module_dependencies.txt b/regression/cpp-linter/catch-cast/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/class-decl-space/module_dependencies.txt b/regression/cpp-linter/class-decl-space/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/do-while1/module_dependencies.txt b/regression/cpp-linter/do-while1/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/do-while2/module_dependencies.txt b/regression/cpp-linter/do-while2/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/function-comment-header1/module_dependencies.txt b/regression/cpp-linter/function-comment-header1/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/function-comment-header2/module_dependencies.txt b/regression/cpp-linter/function-comment-header2/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/function-comment-header3/module_dependencies.txt b/regression/cpp-linter/function-comment-header3/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/function-comment-header4/module_dependencies.txt b/regression/cpp-linter/function-comment-header4/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/function-comment-header5/module_dependencies.txt b/regression/cpp-linter/function-comment-header5/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/function-comment-header6/module_dependencies.txt b/regression/cpp-linter/function-comment-header6/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/function-comment-header7/module_dependencies.txt b/regression/cpp-linter/function-comment-header7/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/if-else1/module_dependencies.txt b/regression/cpp-linter/if-else1/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/if-else2/module_dependencies.txt b/regression/cpp-linter/if-else2/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/if-else3/module_dependencies.txt b/regression/cpp-linter/if-else3/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/if-else4/module_dependencies.txt b/regression/cpp-linter/if-else4/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/if-else5/module_dependencies.txt b/regression/cpp-linter/if-else5/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/if-else6/module_dependencies.txt b/regression/cpp-linter/if-else6/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/multi-line-comment/module_dependencies.txt b/regression/cpp-linter/multi-line-comment/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/multi-line-function-call1/module_dependencies.txt b/regression/cpp-linter/multi-line-function-call1/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/multi-line-function-call2/module_dependencies.txt b/regression/cpp-linter/multi-line-function-call2/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/multi-line-function-call3/module_dependencies.txt b/regression/cpp-linter/multi-line-function-call3/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/multi-line-string1/module_dependencies.txt b/regression/cpp-linter/multi-line-string1/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/multi-line-string2/module_dependencies.txt b/regression/cpp-linter/multi-line-string2/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/namespace/module_dependencies.txt b/regression/cpp-linter/namespace/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/operator-spacing1/module_dependencies.txt b/regression/cpp-linter/operator-spacing1/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/operator-spacing2/module_dependencies.txt b/regression/cpp-linter/operator-spacing2/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/operator-spacing3/module_dependencies.txt b/regression/cpp-linter/operator-spacing3/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/override-final/module_dependencies.txt b/regression/cpp-linter/override-final/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/pointer-type1/module_dependencies.txt b/regression/cpp-linter/pointer-type1/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/prefix-increment/module_dependencies.txt b/regression/cpp-linter/prefix-increment/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/struct-inline-decl/module_dependencies.txt b/regression/cpp-linter/struct-inline-decl/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/template-types/module_dependencies.txt b/regression/cpp-linter/template-types/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/regression/cpp-linter/throw/module_dependencies.txt b/regression/cpp-linter/throw/module_dependencies.txt new file mode 100644 index 00000000000..e69de29bb2d From a5b3008411f89a7800fde9003017242a80d84103 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Mon, 15 Mar 2021 17:50:11 +0000 Subject: [PATCH 16/25] Enable cpplint regression tests We have regression tests for cpplint.py, and should perhaps have used them to avoid silently failing. --- regression/CMakeLists.txt | 1 + regression/Makefile | 1 + regression/cpp-linter/CMakeLists.txt | 1 + regression/cpp-linter/Makefile | 4 ++-- regression/cpp-linter/assert/test.desc | 5 +++-- .../cpp-linter/class-decl-space/main.cpp | 6 +++-- .../cpp-linter/class-decl-space/test.desc | 22 +++++++++++-------- regression/cpp-linter/do-while1/test.desc | 7 +++--- regression/cpp-linter/do-while2/test.desc | 7 ++++-- .../function-comment-header1/test.desc | 9 ++++++-- .../function-comment-header2/test.desc | 9 ++++++-- .../function-comment-header3/test.desc | 9 ++++++-- .../function-comment-header4/test.desc | 9 ++++++-- .../function-comment-header5/test.desc | 2 +- .../function-comment-header6/test.desc | 2 +- .../function-comment-header7/test.desc | 2 +- regression/cpp-linter/if-else1/test.desc | 16 +++++++++----- regression/cpp-linter/if-else2/test.desc | 10 ++++++--- regression/cpp-linter/if-else3/test.desc | 12 ++++++---- regression/cpp-linter/if-else4/test.desc | 12 ++++++---- regression/cpp-linter/if-else5/test.desc | 2 +- regression/cpp-linter/if-else6/test.desc | 2 +- .../multi-line-function-call1/test.desc | 11 ++++++---- .../multi-line-function-call2/test.desc | 11 ++++++---- .../multi-line-function-call3/test.desc | 2 +- .../cpp-linter/operator-spacing1/test.desc | 8 +++++-- .../cpp-linter/operator-spacing2/test.desc | 2 +- .../cpp-linter/operator-spacing3/test.desc | 3 ++- regression/cpp-linter/override-final/main.cpp | 2 +- .../cpp-linter/override-final/test.desc | 3 ++- regression/cpp-linter/pointer-type1/test.desc | 7 +++--- .../cpp-linter/struct-inline-decl/test.desc | 2 +- .../cpp-linter/template-types/test.desc | 8 +++++-- regression/cpp-linter/throw/test.desc | 3 ++- scripts/cpplint.py | 2 +- 35 files changed, 141 insertions(+), 73 deletions(-) create mode 100644 regression/cpp-linter/CMakeLists.txt diff --git a/regression/CMakeLists.txt b/regression/CMakeLists.txt index c8b8382526f..33f46f472bd 100644 --- a/regression/CMakeLists.txt +++ b/regression/CMakeLists.txt @@ -69,6 +69,7 @@ add_subdirectory(validate-trace-xml-schema) add_subdirectory(cbmc-primitives) add_subdirectory(goto-interpreter) add_subdirectory(cbmc-sequentialization) +add_subdirectory(cpp-linter) if(WITH_MEMORY_ANALYZER) add_subdirectory(snapshot-harness) diff --git a/regression/Makefile b/regression/Makefile index 9cc13313e34..14c7e188b03 100644 --- a/regression/Makefile +++ b/regression/Makefile @@ -42,6 +42,7 @@ DIRS = cbmc \ cbmc-primitives \ goto-interpreter \ cbmc-sequentialization \ + cpp-linter \ # Empty last line ifeq ($(OS),Windows_NT) diff --git a/regression/cpp-linter/CMakeLists.txt b/regression/cpp-linter/CMakeLists.txt new file mode 100644 index 00000000000..7f8d4cedde5 --- /dev/null +++ b/regression/cpp-linter/CMakeLists.txt @@ -0,0 +1 @@ +add_test_pl_tests("../../../scripts/cpplint.py") diff --git a/regression/cpp-linter/Makefile b/regression/cpp-linter/Makefile index ec9ab1cdea6..b5e30ce103c 100644 --- a/regression/cpp-linter/Makefile +++ b/regression/cpp-linter/Makefile @@ -1,10 +1,10 @@ default: tests.log test: - @../test.pl -p -c "python ../../../scripts/cpplint.py" + @../test.pl -p -c ../../../scripts/cpplint.py tests.log: ../test.pl - @../test.pl -p -c "python ../../../scripts/cpplint.py" + @../test.pl -p -c ../../../scripts/cpplint.py show: @for dir in *; do \ diff --git a/regression/cpp-linter/assert/test.desc b/regression/cpp-linter/assert/test.desc index cda85742156..8581a0624c4 100644 --- a/regression/cpp-linter/assert/test.desc +++ b/regression/cpp-linter/assert/test.desc @@ -1,6 +1,7 @@ CORE main.cpp -^main\.cpp:8: assert is deprecated, use INVARIANT instead \[build/deprecated\] \[4\] -^Total errors found: 1$ +^regression/cpp-linter/assert/main\.cpp:8: assert is deprecated, use UNREACHABLE instead \[build/deprecated\] \[4\] +^# Total errors found: 1$ +^EXIT=1$ ^SIGNAL=0$ diff --git a/regression/cpp-linter/class-decl-space/main.cpp b/regression/cpp-linter/class-decl-space/main.cpp index 6f0ce90641e..8ab6dedadfb 100644 --- a/regression/cpp-linter/class-decl-space/main.cpp +++ b/regression/cpp-linter/class-decl-space/main.cpp @@ -6,13 +6,14 @@ Author: Thomas Kiley, thomas@diffblue.com \*******************************************************************/ +// clang-format off class temp_classt : public base_classt {} -class another_class : public base_classt +class another_class: public base_classt {} -class more_class:public base_classt +class more_class: public base_classt {} class nonderived @@ -41,3 +42,4 @@ class testt template void bar(U t); } +// clang-format on diff --git a/regression/cpp-linter/class-decl-space/test.desc b/regression/cpp-linter/class-decl-space/test.desc index c3e5fd574b4..3fd5a57e3a7 100644 --- a/regression/cpp-linter/class-decl-space/test.desc +++ b/regression/cpp-linter/class-decl-space/test.desc @@ -1,14 +1,18 @@ CORE main.cpp -^main\.cpp:9: There shouldn.t be a space between class identifier and : \[readability/identifiers\] \[4\]$ -^main\.cpp:12: There shouldn.t be a space between class identifier and : \[readability/identifiers\] \[4\]$ -^main\.cpp:12: Class or struct identifier should end with t \[readability/identifiers\] \[4\]$ -^main\.cpp:15: Class or struct identifier should end with t \[readability/identifiers\] \[4\]$ -^main\.cpp:18: Class or struct identifier should end with t \[readability/identifiers\] \[4\]$ -^main\.cpp:26: Class or struct identifier should end with t \[readability/identifiers\] \[4\]$ -^main\.cpp:30: Remove spaces around < \[whitespace/operators\] \[4\]$ -^main\.cpp:36: Remove spaces around < \[whitespace/operators\] \[4\]$ -^Total errors found: 8$ +^regression/cpp-linter/class-decl-space/main\.cpp:13: There should be a space between class identifier and : \[readability/identifier_spacing\] \[4\]$ +^regression/cpp-linter/class-decl-space/main\.cpp:16: There should be a space between class identifier and : \[readability/identifier_spacing\] \[4\]$ +^regression/cpp-linter/class-decl-space/main\.cpp:13: Class or struct identifier should end with t \[readability/identifiers\] \[4\]$ +^regression/cpp-linter/class-decl-space/main\.cpp:16: Class or struct identifier should end with t \[readability/identifiers\] \[4\]$ +^regression/cpp-linter/class-decl-space/main\.cpp:19: Class or struct identifier should end with t \[readability/identifiers\] \[4\]$ +^regression/cpp-linter/class-decl-space/main\.cpp:27: Class or struct identifier should end with t \[readability/identifiers\] \[4\]$ +^# Total errors found: 6$ +^EXIT=1$ ^SIGNAL=0$ -- +-- +The following patters are disabled as the corresponding checks in cpplint.py +were commented out in 56aea470fd6 for they yield too many false positives: +^regression/cpp-linter/class-decl-space/main\.cpp:31: Remove spaces around < \[whitespace/operators\] \[4\]$ +^regression/cpp-linter/class-decl-space/main\.cpp:37: Remove spaces around < \[whitespace/operators\] \[4\]$ diff --git a/regression/cpp-linter/do-while1/test.desc b/regression/cpp-linter/do-while1/test.desc index 2d2c6367a42..c53acbb64c1 100644 --- a/regression/cpp-linter/do-while1/test.desc +++ b/regression/cpp-linter/do-while1/test.desc @@ -1,8 +1,9 @@ CORE main.cpp -^main\.cpp:31: Empty loop bodies should use \{\} or continue \[whitespace/empty_loop_body\] \[5\]$ -^main\.cpp:38: Empty loop bodies should use \{\} or continue \[whitespace/empty_loop_body\] \[5\]$ -^Total errors found: 2$ +^regression/cpp-linter/do-while1/main\.cpp:31: Empty loop bodies should use \{\} or continue \[whitespace/empty_loop_body\] \[5\]$ +^regression/cpp-linter/do-while1/main\.cpp:38: Empty loop bodies should use \{\} or continue \[whitespace/empty_loop_body\] \[5\]$ +^# Total errors found: 2$ +^EXIT=1$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/do-while2/test.desc b/regression/cpp-linter/do-while2/test.desc index 97ef6886722..5e1ec57cbc5 100644 --- a/regression/cpp-linter/do-while2/test.desc +++ b/regression/cpp-linter/do-while2/test.desc @@ -1,7 +1,10 @@ CORE main.cpp -^main\.cpp:26: while statement of do...while loop should be on a separate line to the closing brace \[readability/braces\] \[4\] -^Total errors found: 1$ +^EXIT=0$ ^SIGNAL=0$ -- +-- +Test was marked as disabled-by-default in a00edd3e6c54. +^main\.cpp:26: while statement of do...while loop should be on a separate line to the closing brace \[readability/braces\] \[4\] +^# Total errors found: 1$ diff --git a/regression/cpp-linter/function-comment-header1/test.desc b/regression/cpp-linter/function-comment-header1/test.desc index 708eecf0783..b578f530a90 100644 --- a/regression/cpp-linter/function-comment-header1/test.desc +++ b/regression/cpp-linter/function-comment-header1/test.desc @@ -1,7 +1,12 @@ -CORE +KNOWNBUG main.cpp ^main\.cpp:26: Could not find function header comment for foo \[readability/function_comment\] \[4\] -^Total errors found: 1$ +^# Total errors found: 1$ +^EXIT=1$ ^SIGNAL=0$ -- +-- +The checking code in cpplint.py was broken in 7302e56a348, where a wrong indent +caused the check to never take place. That's fine, however, as we don't use +these function headers anymore. diff --git a/regression/cpp-linter/function-comment-header2/test.desc b/regression/cpp-linter/function-comment-header2/test.desc index 639c28c6fe3..0817924f1f2 100644 --- a/regression/cpp-linter/function-comment-header2/test.desc +++ b/regression/cpp-linter/function-comment-header2/test.desc @@ -1,9 +1,14 @@ -CORE +KNOWNBUG main.cpp main\.cpp:15: Function header for fun missing Inputs: \[readability/function_comment\] \[4\] main\.cpp:15: Function header for fun missing Outputs: \[readability/function_comment\] \[4\] main\.cpp:15: Function header for fun missing Purpose: \[readability/function_comment\] \[4\] -^Total errors found: 3$ +^# Total errors found: 3$ +^EXIT=1$ ^SIGNAL=0$ -- +-- +The checking code in cpplint.py was broken in 7302e56a348, where a wrong indent +caused the check to never take place. That's fine, however, as we don't use +these function headers anymore. diff --git a/regression/cpp-linter/function-comment-header3/test.desc b/regression/cpp-linter/function-comment-header3/test.desc index 9be52904021..9937a46e191 100644 --- a/regression/cpp-linter/function-comment-header3/test.desc +++ b/regression/cpp-linter/function-comment-header3/test.desc @@ -1,7 +1,12 @@ -CORE +KNOWNBUG main.cpp ^main\.cpp:20: Insert an empty line between function header comment and the function fun \[readability/function_comment\] \[4\]$ -^Total errors found: 1$ +^# Total errors found: 1$ +^EXIT=1$ ^SIGNAL=0$ -- +-- +The checking code in cpplint.py was broken in 7302e56a348, where a wrong indent +caused the check to never take place. That's fine, however, as we don't use +these function headers anymore. diff --git a/regression/cpp-linter/function-comment-header4/test.desc b/regression/cpp-linter/function-comment-header4/test.desc index 0766623cc21..36c9ca0ac94 100644 --- a/regression/cpp-linter/function-comment-header4/test.desc +++ b/regression/cpp-linter/function-comment-header4/test.desc @@ -1,7 +1,12 @@ -CORE +KNOWNBUG main.cpp ^main\.cpp:11: Function: name in the comment doesn.t match the function name \[readability/function_comment\] \[4\] -^Total errors found: 1$ +^# Total errors found: 1$ +^EXIT=1$ ^SIGNAL=0$ -- +-- +The checking code in cpplint.py was broken in 7302e56a348, where a wrong indent +caused the check to never take place. That's fine, however, as we don't use +these function headers anymore. diff --git a/regression/cpp-linter/function-comment-header5/test.desc b/regression/cpp-linter/function-comment-header5/test.desc index 12418d892f4..6bfcbd572f1 100644 --- a/regression/cpp-linter/function-comment-header5/test.desc +++ b/regression/cpp-linter/function-comment-header5/test.desc @@ -1,7 +1,7 @@ CORE main.cpp -^Total errors found: 0$ +^# Total errors found: 0$ ^EXIT=0$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/function-comment-header6/test.desc b/regression/cpp-linter/function-comment-header6/test.desc index 12418d892f4..6bfcbd572f1 100644 --- a/regression/cpp-linter/function-comment-header6/test.desc +++ b/regression/cpp-linter/function-comment-header6/test.desc @@ -1,7 +1,7 @@ CORE main.cpp -^Total errors found: 0$ +^# Total errors found: 0$ ^EXIT=0$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/function-comment-header7/test.desc b/regression/cpp-linter/function-comment-header7/test.desc index 12418d892f4..6bfcbd572f1 100644 --- a/regression/cpp-linter/function-comment-header7/test.desc +++ b/regression/cpp-linter/function-comment-header7/test.desc @@ -1,7 +1,7 @@ CORE main.cpp -^Total errors found: 0$ +^# Total errors found: 0$ ^EXIT=0$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/if-else1/test.desc b/regression/cpp-linter/if-else1/test.desc index c78c36bdc30..4465caeee6c 100644 --- a/regression/cpp-linter/if-else1/test.desc +++ b/regression/cpp-linter/if-else1/test.desc @@ -1,11 +1,15 @@ CORE main.cpp -^main\.cpp:24: Put braces on a separate next line \[whitespace/braces\] \[5\]$ -^main\.cpp:26: Put braces on a separate next line \[whitespace/braces\] \[5\]$ -^main\.cpp:26: Else if should be on a new line after closing brace \[readability/braces\] \[5\]$ -^main\.cpp:28: Put braces on a separate next line \[whitespace/braces\] \[5\]$ -^main\.cpp:28: Else should be on a new line after closing brace \[readability/braces\] \[5\]$ -^Total errors found: 5$ +^regression/cpp-linter/if-else1/main\.cpp:26: Else if should be on a new line after closing brace \[readability/braces\] \[5\]$ +^regression/cpp-linter/if-else1/main\.cpp:28: Else should be on a new line after closing brace \[readability/braces\] \[5\]$ +^# Total errors found: 2$ +^EXIT=1$ ^SIGNAL=0$ -- +-- +The following patters are disabled as the corresponding checks in cpplint.py +were removed in 692c4f377 for they are covered by clang-format: +^regression/cpp-linter/if-else1/main\.cpp:24: Put braces on a separate next line \[whitespace/braces\] \[5\]$ +^regression/cpp-linter/if-else1/main\.cpp:26: Put braces on a separate next line \[whitespace/braces\] \[5\]$ +^regression/cpp-linter/if-else1/main\.cpp:28: Put braces on a separate next line \[whitespace/braces\] \[5\]$ diff --git a/regression/cpp-linter/if-else2/test.desc b/regression/cpp-linter/if-else2/test.desc index b60b15b039d..b83ecb4e21e 100644 --- a/regression/cpp-linter/if-else2/test.desc +++ b/regression/cpp-linter/if-else2/test.desc @@ -1,9 +1,13 @@ CORE main.cpp +^EXIT=0$ +^SIGNAL=0$ +-- +-- +The following patters are disabled as the corresponding checks in cpplint.py +were removed in 692c4f377 for they are covered by clang-format: ^main\.cpp:23: Put braces on a separate next line \[whitespace/braces\] \[5\]$ ^main\.cpp:26: Put braces on a separate next line \[whitespace/braces\] \[5\]$ ^main\.cpp:29: Put braces on a separate next line \[whitespace/braces\] \[5\]$ -^Total errors found: 3$ -^SIGNAL=0$ --- +^# Total errors found: 3$ diff --git a/regression/cpp-linter/if-else3/test.desc b/regression/cpp-linter/if-else3/test.desc index 0199293038f..42c6c9a5664 100644 --- a/regression/cpp-linter/if-else3/test.desc +++ b/regression/cpp-linter/if-else3/test.desc @@ -1,9 +1,13 @@ CORE main.cpp -^main\.cpp:24: Statement after an if should be on a new line \[readability/braces\] \[5\]$ -^main\.cpp:25: Statement after else if should be on a new line \[readability/braces\] \[5\]$ -^main\.cpp:26: Statement after else should be on a new line \[readability/braces\] \[5\]$ -^Total errors found: 3$ +^regression/cpp-linter/if-else3/main\.cpp:24: Statement after an if should be on a new line \[readability/braces\] \[5\]$ +^regression/cpp-linter/if-else3/main\.cpp:25: Statement after else if should be on a new line \[readability/braces\] \[5\]$ +^# Total errors found: 2$ +^EXIT=1$ ^SIGNAL=0$ -- +-- +The following patters are disabled as the corresponding checks in cpplint.py +were commented out in 56aea470fd6 for they yield too many false positives: +^regression/cpp-linter/if-else3/main\.cpp:26: Statement after else should be on a new line \[readability/braces\] \[5\]$ diff --git a/regression/cpp-linter/if-else4/test.desc b/regression/cpp-linter/if-else4/test.desc index 0199293038f..33680bd83e8 100644 --- a/regression/cpp-linter/if-else4/test.desc +++ b/regression/cpp-linter/if-else4/test.desc @@ -1,9 +1,13 @@ CORE main.cpp -^main\.cpp:24: Statement after an if should be on a new line \[readability/braces\] \[5\]$ -^main\.cpp:25: Statement after else if should be on a new line \[readability/braces\] \[5\]$ -^main\.cpp:26: Statement after else should be on a new line \[readability/braces\] \[5\]$ -^Total errors found: 3$ +^regression/cpp-linter/if-else4/main\.cpp:24: Statement after an if should be on a new line \[readability/braces\] \[5\]$ +^regression/cpp-linter/if-else4/main\.cpp:25: Statement after else if should be on a new line \[readability/braces\] \[5\]$ +^# Total errors found: 2$ +^EXIT=1$ ^SIGNAL=0$ -- +-- +The following patters are disabled as the corresponding checks in cpplint.py +were commented out in 56aea470fd6 for they yield too many false positives: +^regression/cpp-linter/if-else4/main\.cpp:26: Statement after else should be on a new line \[readability/braces\] \[5\]$ diff --git a/regression/cpp-linter/if-else5/test.desc b/regression/cpp-linter/if-else5/test.desc index 12418d892f4..6bfcbd572f1 100644 --- a/regression/cpp-linter/if-else5/test.desc +++ b/regression/cpp-linter/if-else5/test.desc @@ -1,7 +1,7 @@ CORE main.cpp -^Total errors found: 0$ +^# Total errors found: 0$ ^EXIT=0$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/if-else6/test.desc b/regression/cpp-linter/if-else6/test.desc index 12418d892f4..6bfcbd572f1 100644 --- a/regression/cpp-linter/if-else6/test.desc +++ b/regression/cpp-linter/if-else6/test.desc @@ -1,7 +1,7 @@ CORE main.cpp -^Total errors found: 0$ +^# Total errors found: 0$ ^EXIT=0$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/multi-line-function-call1/test.desc b/regression/cpp-linter/multi-line-function-call1/test.desc index 14cd2f06ff2..d6dd1b001cc 100644 --- a/regression/cpp-linter/multi-line-function-call1/test.desc +++ b/regression/cpp-linter/multi-line-function-call1/test.desc @@ -1,6 +1,12 @@ CORE main.cpp +^EXIT=0$ +^SIGNAL=0$ +-- +-- +The following patters are disabled as the corresponding checks in cpplint.py +were commented out in 56aea470fd6 for they yield too many false positives: ^main\.cpp:29: If parameters or arguments require a line break, each parameter should be put on its own line\. \[whitespace/indent\] \[4\] ^main\.cpp:34: Indent of wrapped parenthesized expression or parameter or argument list should be 2 \[whitespace/indent\] \[4\] ^main\.cpp:43: If parameters or arguments require a line break, each parameter should be put on its own line\. \[whitespace/indent\] \[4\] @@ -11,7 +17,4 @@ main.cpp ^main\.cpp:76: Indent of wrapped parenthesized expression or parameter or argument list should be 2 \[whitespace/indent\] \[4\] ^main\.cpp:81: If parameters or arguments require a line break, the closing bracket should be on the same line as the final parameter \[whitespace/indent\] \[4\] ^main\.cpp:85: If parameters or arguments require a line break, each parameter should be put on its own line. \[whitespace/indent\] \[4\] -^Total errors found: 10$ -^EXIT=1$ -^SIGNAL=0$ --- +^# Total errors found: 10$ diff --git a/regression/cpp-linter/multi-line-function-call2/test.desc b/regression/cpp-linter/multi-line-function-call2/test.desc index 2fb7df0f981..28d719f4845 100644 --- a/regression/cpp-linter/multi-line-function-call2/test.desc +++ b/regression/cpp-linter/multi-line-function-call2/test.desc @@ -1,11 +1,14 @@ CORE main.cpp +^EXIT=0$ +^SIGNAL=0$ +-- +-- +The following patters are disabled as the corresponding checks in cpplint.py +were commented out in 56aea470fd6 for they yield too many false positives: ^main\.cpp:24: If parameters or arguments require a line break, each parameter should be put on its own line\. \[whitespace/indent\] \[4\] ^main\.cpp:29: Indent of wrapped parenthesized expression or parameter or argument list should be 2 \[whitespace/indent\] \[4\] ^main\.cpp:60: If parameters or arguments require a line break, each parameter should be put on its own line\. \[whitespace/indent\] \[4\] ^main\.cpp:65: If parameters or arguments require a line break, each parameter should be put on its own line\. \[whitespace/indent\] \[4\] -^Total errors found: 4$ -^EXIT=1$ -^SIGNAL=0$ --- +^# Total errors found: 4$ diff --git a/regression/cpp-linter/multi-line-function-call3/test.desc b/regression/cpp-linter/multi-line-function-call3/test.desc index 12418d892f4..6bfcbd572f1 100644 --- a/regression/cpp-linter/multi-line-function-call3/test.desc +++ b/regression/cpp-linter/multi-line-function-call3/test.desc @@ -1,7 +1,7 @@ CORE main.cpp -^Total errors found: 0$ +^# Total errors found: 0$ ^EXIT=0$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/operator-spacing1/test.desc b/regression/cpp-linter/operator-spacing1/test.desc index c988ced295b..ab5ab156769 100644 --- a/regression/cpp-linter/operator-spacing1/test.desc +++ b/regression/cpp-linter/operator-spacing1/test.desc @@ -1,7 +1,11 @@ -CORE +FUTURE main.cpp ^main\.cpp:23: Remove spaces around = \[whitespace/operators\] \[4\] -^Total errors found: 1$ +^# Total errors found: 1$ +^EXIT=1$ ^SIGNAL=0$ -- +-- +Test disabled (marked as "FUTURE") as the corresponding checks in cpplint.py +were commented out in 56aea470fd6 for they yield too many false positives. diff --git a/regression/cpp-linter/operator-spacing2/test.desc b/regression/cpp-linter/operator-spacing2/test.desc index 12418d892f4..6bfcbd572f1 100644 --- a/regression/cpp-linter/operator-spacing2/test.desc +++ b/regression/cpp-linter/operator-spacing2/test.desc @@ -1,7 +1,7 @@ CORE main.cpp -^Total errors found: 0$ +^# Total errors found: 0$ ^EXIT=0$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/operator-spacing3/test.desc b/regression/cpp-linter/operator-spacing3/test.desc index 056369e4df6..cc79168d003 100644 --- a/regression/cpp-linter/operator-spacing3/test.desc +++ b/regression/cpp-linter/operator-spacing3/test.desc @@ -5,6 +5,7 @@ main.cpp ^main\.cpp:27: Missing spaces around << \[whitespace/operators\] \[3\] ^main\.cpp:29: Remove spaces around << \[whitespace/operators\] \[4\] ^main\.cpp:29: Remove spaces around << \[whitespace/operators\] \[4\] -^Total errors found: 4$ +^# Total errors found: 4$ +^EXIT=1$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/override-final/main.cpp b/regression/cpp-linter/override-final/main.cpp index 455a029f774..726efd71630 100644 --- a/regression/cpp-linter/override-final/main.cpp +++ b/regression/cpp-linter/override-final/main.cpp @@ -6,7 +6,7 @@ Author: Thomas Kiley, thomas@diffblue.com \*******************************************************************/ -class test_classt:public base_classt +class test_classt : public base_classt { public: virtual void fun() override final; diff --git a/regression/cpp-linter/override-final/test.desc b/regression/cpp-linter/override-final/test.desc index 63fbf20a5ee..9b6e9498a23 100644 --- a/regression/cpp-linter/override-final/test.desc +++ b/regression/cpp-linter/override-final/test.desc @@ -1,6 +1,7 @@ CORE main.cpp -^EXIT=0$ +^regression/cpp-linter/override-final/main\.cpp:12: "virtual" is redundant since function is already declared as "override" \[readability/inheritance\] \[4\]$ +^EXIT=1$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/pointer-type1/test.desc b/regression/cpp-linter/pointer-type1/test.desc index 548cc52eee1..3a48b6e6223 100644 --- a/regression/cpp-linter/pointer-type1/test.desc +++ b/regression/cpp-linter/pointer-type1/test.desc @@ -1,8 +1,9 @@ CORE main.cpp -^main\.cpp:24: Pointer type name must have \* attached to the type name \[whitespace/operators\] \[4\]$ -^main\.cpp:27: Reference type name must have & attached to the type name \[whitespace/operators\] \[4\]$ -^Total errors found: 2$ +^regression/cpp-linter/pointer-type1/main\.cpp:24: Pointer type name must have \* attached to the type name \[whitespace/operators\] \[4\]$ +^regression/cpp-linter/pointer-type1/main\.cpp:27: Reference type name must have & attached to the type name \[whitespace/operators\] \[4\]$ +^# Total errors found: 2$ +^EXIT=1$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/struct-inline-decl/test.desc b/regression/cpp-linter/struct-inline-decl/test.desc index 12418d892f4..6bfcbd572f1 100644 --- a/regression/cpp-linter/struct-inline-decl/test.desc +++ b/regression/cpp-linter/struct-inline-decl/test.desc @@ -1,7 +1,7 @@ CORE main.cpp -^Total errors found: 0$ +^# Total errors found: 0$ ^EXIT=0$ ^SIGNAL=0$ -- diff --git a/regression/cpp-linter/template-types/test.desc b/regression/cpp-linter/template-types/test.desc index 280b37b71b0..c319055444b 100644 --- a/regression/cpp-linter/template-types/test.desc +++ b/regression/cpp-linter/template-types/test.desc @@ -1,7 +1,11 @@ -CORE +FUTURE main.cpp ^main\.cpp:29: Remove spaces around > \[whitespace/operators\] \[4\]$ -^Total errors found: 1$ +^# Total errors found: 1$ +^EXIT=1$ ^SIGNAL=0$ -- +-- +Test disabled (marked as "FUTURE") as the corresponding checks in cpplint.py +were commented out in 56aea470fd6 for they yield too many false positives. diff --git a/regression/cpp-linter/throw/test.desc b/regression/cpp-linter/throw/test.desc index 3162178e4e1..16d9d0079cf 100644 --- a/regression/cpp-linter/throw/test.desc +++ b/regression/cpp-linter/throw/test.desc @@ -7,6 +7,7 @@ main\.cpp:26: Do not include brackets when throwing an error \[readability/thr main\.cpp:28: First character of throw error message should be lower case \[readability/throw\] \[4\] main\.cpp:29: Do not include brackets when throwing an error \[readability/throw\] \[4\] main\.cpp:29: First character of throw error message should be lower case \[readability/throw\] \[4\] -^Total errors found: 6$ +^# Total errors found: 6$ +^EXIT=1$ ^SIGNAL=0$ -- diff --git a/scripts/cpplint.py b/scripts/cpplint.py index e9ba8b53f5a..b75f15755eb 100755 --- a/scripts/cpplint.py +++ b/scripts/cpplint.py @@ -970,7 +970,7 @@ def PrintErrorCounts(self): for category, count in self.errors_by_category.iteritems(): sys.stderr.write('Category \'%s\' errors found: %d\n' % (category, count)) - sys.stdout.write('# Total errors found: %d\n' % self.error_count) + sys.stdout.write('# Total errors found: %d\n' % self.error_count) _cpplint_state = _CppLintState() From 867168cb03fe8e18a7420a5c8f84ef82c8b3ff5b Mon Sep 17 00:00:00 2001 From: Saswat Padhi Date: Fri, 19 Mar 2021 17:49:44 -0400 Subject: [PATCH 17/25] Fixed the havocing of pointers modified by loops The `__CPROVER_loop_invariant` contract used to incorrectly havoc the underlying pointer location instead of just havocing the value at the memory location. This commit fixes this. --- .../invar_check_pointer_modifies-01/main.c | 18 ++++++++++++++++ .../invar_check_pointer_modifies-01/test.desc | 14 +++++++++++++ .../invar_check_pointer_modifies-02/main.c | 21 +++++++++++++++++++ .../invar_check_pointer_modifies-02/test.desc | 14 +++++++++++++ src/goto-instrument/loop_utils.cpp | 7 +++---- 5 files changed, 70 insertions(+), 4 deletions(-) create mode 100644 regression/contracts/invar_check_pointer_modifies-01/main.c create mode 100644 regression/contracts/invar_check_pointer_modifies-01/test.desc create mode 100644 regression/contracts/invar_check_pointer_modifies-02/main.c create mode 100644 regression/contracts/invar_check_pointer_modifies-02/test.desc diff --git a/regression/contracts/invar_check_pointer_modifies-01/main.c b/regression/contracts/invar_check_pointer_modifies-01/main.c new file mode 100644 index 00000000000..1c6dc2df5a7 --- /dev/null +++ b/regression/contracts/invar_check_pointer_modifies-01/main.c @@ -0,0 +1,18 @@ +#include +#include + +void main() +{ + char *data = malloc(1); + *data = 42; + + unsigned i; + while(i > 0) + __CPROVER_loop_invariant(*data == 42) + { + *data = 42; + i--; + } + + assert(*data = 42); +} diff --git a/regression/contracts/invar_check_pointer_modifies-01/test.desc b/regression/contracts/invar_check_pointer_modifies-01/test.desc new file mode 100644 index 00000000000..818db63cf95 --- /dev/null +++ b/regression/contracts/invar_check_pointer_modifies-01/test.desc @@ -0,0 +1,14 @@ +CORE +main.c +--enforce-all-contracts --pointer-check +^EXIT=0$ +^SIGNAL=0$ +^\[main.1\] .* Check loop invariant before entry: SUCCESS$ +^\[main.2\] .* Check that loop invariant is preserved: SUCCESS$ +^\[main.assertion.1\] .* assertion \*data = 42: SUCCESS$ +^VERIFICATION SUCCESSFUL$ +-- +^\[main.pointer_dereference.*\] line .* dereference failure: pointer NULL in \*data: FAILURE +-- +This test checks that modifications to deref-ed pointers are correctly handled. +In such cases, pointers should not be havoc'ed, only the value should be. diff --git a/regression/contracts/invar_check_pointer_modifies-02/main.c b/regression/contracts/invar_check_pointer_modifies-02/main.c new file mode 100644 index 00000000000..1642d621ed9 --- /dev/null +++ b/regression/contracts/invar_check_pointer_modifies-02/main.c @@ -0,0 +1,21 @@ +#include +#include + +void main() +{ + char *copy, *data = malloc(1); + + copy = data; + *data = 42; + + unsigned i; + while(i > 0) + __CPROVER_loop_invariant(*data == 42) + { + *data = 42; + i--; + } + + assert(data == copy); + assert(*copy = 42); +} diff --git a/regression/contracts/invar_check_pointer_modifies-02/test.desc b/regression/contracts/invar_check_pointer_modifies-02/test.desc new file mode 100644 index 00000000000..8cf754528bc --- /dev/null +++ b/regression/contracts/invar_check_pointer_modifies-02/test.desc @@ -0,0 +1,14 @@ +CORE +main.c +--enforce-all-contracts --pointer-check +^EXIT=0$ +^SIGNAL=0$ +^\[main.1\] .* Check loop invariant before entry: SUCCESS$ +^\[main.2\] .* Check that loop invariant is preserved: SUCCESS$ +^\[main.assertion.1\] .* assertion data == copy: SUCCESS$ +^\[main.assertion.2\] .* assertion \*copy = 42: SUCCESS$ +^VERIFICATION SUCCESSFUL$ +-- +^\[main.pointer_dereference.*\] line .* dereference failure: pointer NULL in \*data: FAILURE +-- +This test checks that modifications to aliased pointers are correctly handled. diff --git a/src/goto-instrument/loop_utils.cpp b/src/goto-instrument/loop_utils.cpp index ca995bd3991..626cbd88789 100644 --- a/src/goto-instrument/loop_utils.cpp +++ b/src/goto-instrument/loop_utils.cpp @@ -65,10 +65,9 @@ void get_modifies_lhs( modifies.insert(lhs); else if(lhs.id()==ID_dereference) { - modifiest m=local_may_alias.get(t, to_dereference_expr(lhs).pointer()); - for(modifiest::const_iterator m_it=m.begin(); - m_it!=m.end(); m_it++) - get_modifies_lhs(local_may_alias, t, *m_it, modifies); + const auto &pointer = to_dereference_expr(lhs).pointer(); + for(const auto &mod : local_may_alias.get(t, pointer)) + modifies.insert(dereference_exprt{mod}); } else if(lhs.id()==ID_member) { From fdc686594701b56d04b5caa2a46620454fad8d0a Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Fri, 19 Mar 2021 15:47:39 +0100 Subject: [PATCH 18/25] goto-instrument-wmm: removing graph edges invalidates the iterator Store the elements to be removed in a set until after the iteration is done, and then remove the chosen elements. The more standard approach could be returning the iterator to the next element in the remove-an-element function, but this requires larger changes here. Thus keeping it small and simple for now. --- src/goto-instrument/wmm/cycle_collection.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/goto-instrument/wmm/cycle_collection.cpp b/src/goto-instrument/wmm/cycle_collection.cpp index 7b55a74e7c5..a36ac99b851 100644 --- a/src/goto-instrument/wmm/cycle_collection.cpp +++ b/src/goto-instrument/wmm/cycle_collection.cpp @@ -425,13 +425,15 @@ bool event_grapht::graph_explorert::backtrack( if(!no_comm) { /* we then visit via com transitions, if existing */ + std::set edges_to_remove; + for(wmm_grapht::edgest::const_iterator w_it=egraph.com_out(vertex).begin(); w_it!=egraph.com_out(vertex).end(); w_it++) { const event_idt w=w_it->first; if(w < source) - egraph.remove_com_edge(vertex, w); + edges_to_remove.insert(w); else if(w==source && point_stack.size()>=4 && (unsafe_met_updated || this_vertex.unsafe_pair(egraph[source], model))) @@ -473,6 +475,9 @@ bool event_grapht::graph_explorert::backtrack( irep_idt(), model); } + + for(const event_idt e : edges_to_remove) + egraph.remove_com_edge(vertex, e); } if(f) From d1da5183595b22625f8d6376baf9a6137e853b22 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Mon, 15 Mar 2021 20:09:03 +0000 Subject: [PATCH 19/25] Enable regression tests of weak memory model instrumentation These regression tests are a selected subset (cf. README.txt) of the full set of available tests (stored in goto-instrument-wmm-full.tgz), and will ensure basic testing of the functionality implemented in goto-instrument. Test specifications were updated to work with current infrastructure. --- regression/CMakeLists.txt | 1 + regression/Makefile | 1 + .../goto-instrument-wmm-core/CMakeLists.txt | 9 +++++ regression/goto-instrument-wmm-core/Makefile | 35 ++++++++++++------- regression/goto-instrument-wmm-core/chain.sh | 26 +++++++++----- .../ppc_aclwdrr002_POWER_OPT/test.desc | 1 + .../ppc_aclwdrr006_POWER_OPT/test.desc | 1 + .../ppc_aclwdrr008_POWER_OPT/test.desc | 1 + .../ppc_aclwdrr010_POWER_OPT/test.desc | 1 + .../ppc_aclwdrr011_POWER_OPT/test.desc | 1 + .../ppc_aclwdrr013_POWER_OPT/test.desc | 1 + .../ppc_aclwsrr002_POWER_OPT/test.desc | 1 + .../ppc_bclwdww001_POWER_OPT/test.desc | 1 + .../ppc_bclwdww003_POWER_OPT/test.desc | 1 + .../ppc_bclwdww005_POWER_OPT/test.desc | 1 + .../ppc_iriw+lwsyncs_POWER_OPT/test.desc | 1 + .../ppc_lwdwr000_POWER_OPT/test.desc | 1 + .../ppc_lwdwr000_TSO_OPT/test.desc | 1 + .../ppc_lwdwr001_POWER_OPT/test.desc | 1 + .../ppc_lwdwr004_POWER_OPT/test.desc | 1 + .../ppc_lwdwr004_TSO_OPT/test.desc | 1 + .../ppc_lwdwr006_POWER_OPT/test.desc | 1 + .../ppc_lwdwr007_POWER_OPT/test.desc | 1 + .../ppc_lwdwr010_POWER_OPT/test.desc | 1 + .../ppc_lwdwr016_POWER_OPT/test.desc | 1 + .../ppc_lwdwr016_TSO_OPT/test.desc | 1 + .../ppc_lwdwr017_POWER_OPT/test.desc | 1 + .../ppc_lwdwr019_POWER_OPT/test.desc | 1 + .../ppc_lwdwr019_TSO_OPT/test.desc | 1 + .../ppc_podrr001_POWER_OPT/test.desc | 1 + .../ppc_podrw001_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr001_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr002_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr003_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr006_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr007_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr008_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr010_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr011_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr012_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr013_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr014_POWER_OPT/test.desc | 1 + .../ppc_podrwposwr015_POWER_OPT/test.desc | 1 + .../ppc_posrr004_POWER_OPT/test.desc | 1 + .../ppc_rfe000_POWER_OPT/test.desc | 1 + .../ppc_rfe001_POWER_OPT/test.desc | 1 + .../ppc_safe002_POWER_OPT/test.desc | 1 + .../ppc_safe019_POWER_OPT/test.desc | 1 + .../ppc_safe025_POWER_OPT/test.desc | 1 + .../ppc_safe027_POWER_OPT/test.desc | 1 + .../ppc_safe044_POWER_OPT/test.desc | 1 + .../ppc_safe049_POWER_OPT/test.desc | 1 + .../ppc_safe051_POWER_OPT/test.desc | 1 + .../ppc_safe057_POWER_OPT/test.desc | 1 + .../ppc_safe075_POWER_OPT/test.desc | 1 + .../ppc_safe078_POWER_OPT/test.desc | 1 + .../ppc_safe081_POWER_OPT/test.desc | 1 + .../ppc_safe087_POWER_OPT/test.desc | 1 + .../ppc_safe090_POWER_OPT/test.desc | 1 + .../ppc_safe100_POWER_OPT/test.desc | 1 + .../ppc_safe102_POWER_OPT/test.desc | 1 + .../ppc_safe104_POWER_OPT/test.desc | 1 + .../ppc_safe105_POWER_OPT/test.desc | 1 + .../ppc_safe107_POWER_OPT/test.desc | 1 + .../ppc_safe110_POWER_OPT/test.desc | 1 + .../ppc_thin000_POWER_OPT/test.desc | 1 + .../ppc_thin001_POWER_OPT/test.desc | 1 + .../x86_mix004_POWER_OPT/test.desc | 1 + .../x86_mix004_TSO_OPT/test.desc | 1 + .../x86_mix005_POWER_OPT/test.desc | 1 + .../x86_mix005_TSO_OPT/test.desc | 1 + .../x86_mix007_POWER_OPT/test.desc | 1 + .../x86_mix007_TSO_OPT/test.desc | 1 + .../x86_mix008_POWER_OPT/test.desc | 1 + .../x86_mix008_TSO_OPT/test.desc | 1 + .../x86_mix013_POWER_OPT/test.desc | 1 + .../x86_mix013_TSO_OPT/test.desc | 1 + .../x86_mix014_POWER_OPT/test.desc | 1 + .../x86_mix014_TSO_OPT/test.desc | 1 + .../x86_mix017_POWER_OPT/test.desc | 1 + .../x86_mix017_TSO_OPT/test.desc | 1 + .../x86_mix018_POWER_OPT/test.desc | 1 + .../x86_mix018_TSO_OPT/test.desc | 1 + .../x86_mix020_POWER_OPT/test.desc | 1 + .../x86_mix020_TSO_OPT/test.desc | 1 + .../x86_mix021_POWER_OPT/test.desc | 1 + .../x86_mix021_TSO_OPT/test.desc | 1 + .../x86_mix023_POWER_OPT/test.desc | 1 + .../x86_mix023_TSO_OPT/test.desc | 1 + .../x86_mix026_POWER_OPT/test.desc | 1 + .../x86_mix026_TSO_OPT/test.desc | 1 + .../x86_mix027_POWER_OPT/test.desc | 1 + .../x86_mix027_TSO_OPT/test.desc | 1 + .../x86_mix029_POWER_OPT/test.desc | 1 + .../x86_mix029_TSO_OPT/test.desc | 1 + .../x86_mix030_POWER_OPT/test.desc | 1 + .../x86_mix030_TSO_OPT/test.desc | 1 + .../x86_mix036_POWER_OPT/test.desc | 1 + .../x86_mix036_TSO_OPT/test.desc | 1 + .../x86_mix037_POWER_OPT/test.desc | 1 + .../x86_mix037_TSO_OPT/test.desc | 1 + .../x86_mix039_POWER_OPT/test.desc | 1 + .../x86_mix039_TSO_OPT/test.desc | 1 + .../x86_mix040_POWER_OPT/test.desc | 1 + .../x86_mix040_TSO_OPT/test.desc | 1 + .../x86_mix043_POWER_OPT/test.desc | 1 + .../x86_mix043_TSO_OPT/test.desc | 1 + .../x86_mix044_POWER_OPT/test.desc | 1 + .../x86_mix044_TSO_OPT/test.desc | 1 + .../x86_mix046_POWER_OPT/test.desc | 1 + .../x86_mix046_TSO_OPT/test.desc | 1 + .../x86_mix047_POWER_OPT/test.desc | 1 + .../x86_mix047_TSO_OPT/test.desc | 1 + .../x86_mix050_POWER_OPT/test.desc | 1 + .../x86_mix050_TSO_OPT/test.desc | 1 + .../x86_mix051_POWER_OPT/test.desc | 1 + .../x86_mix051_TSO_OPT/test.desc | 1 + .../x86_mix053_POWER_OPT/test.desc | 1 + .../x86_mix053_TSO_OPT/test.desc | 1 + .../x86_mix055_POWER_OPT/test.desc | 1 + .../x86_mix055_TSO_OPT/test.desc | 1 + .../x86_mix057_POWER_OPT/test.desc | 1 + .../x86_mix057_TSO_OPT/test.desc | 1 + .../x86_rfi000_TSO_OPT/test.desc | 1 + .../x86_rfi003_TSO_OPT/test.desc | 1 + .../x86_safe034_POWER_OPT/test.desc | 1 + .../x86_thin002_POWER_OPT/test.desc | 1 + 127 files changed, 173 insertions(+), 21 deletions(-) create mode 100644 regression/goto-instrument-wmm-core/CMakeLists.txt diff --git a/regression/CMakeLists.txt b/regression/CMakeLists.txt index 911f4e0f014..b99afdfad10 100644 --- a/regression/CMakeLists.txt +++ b/regression/CMakeLists.txt @@ -35,6 +35,7 @@ add_subdirectory(cbmc-incr-oneloop) add_subdirectory(cbmc-incr) add_subdirectory(cbmc-with-incr) add_subdirectory(array-refinement-with-incr) +add_subdirectory(goto-instrument-wmm-core) add_subdirectory(goto-instrument-typedef) add_subdirectory(smt2_solver) add_subdirectory(smt2_strings) diff --git a/regression/Makefile b/regression/Makefile index f5cda758189..cd4f422c0b5 100644 --- a/regression/Makefile +++ b/regression/Makefile @@ -13,6 +13,7 @@ DIRS = cbmc \ cbmc-incr \ cbmc-with-incr \ array-refinement-with-incr \ + goto-instrument-wmm-core \ goto-instrument-typedef \ smt2_solver \ smt2_strings \ diff --git a/regression/goto-instrument-wmm-core/CMakeLists.txt b/regression/goto-instrument-wmm-core/CMakeLists.txt new file mode 100644 index 00000000000..f7f08694f6a --- /dev/null +++ b/regression/goto-instrument-wmm-core/CMakeLists.txt @@ -0,0 +1,9 @@ +if(WIN32) + set(is_windows true) +else() + set(is_windows false) +endif() + +add_test_pl_tests( + "${CMAKE_CURRENT_SOURCE_DIR}/chain.sh $ $ $ ${is_windows}" +) diff --git a/regression/goto-instrument-wmm-core/Makefile b/regression/goto-instrument-wmm-core/Makefile index 85c17bf622b..30c6f554e88 100644 --- a/regression/goto-instrument-wmm-core/Makefile +++ b/regression/goto-instrument-wmm-core/Makefile @@ -1,29 +1,40 @@ default: tests.log +include ../../src/config.inc +include ../../src/common + +ifeq ($(BUILD_ENV_),MSVC) + exe=../../../src/goto-cc/goto-cl + is_windows=true +else + exe=../../../src/goto-cc/goto-cc + is_windows=false +endif + testalpha: - @../test.pl -c ../chain.sh -C + @../test.pl -C -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' testbeta: - @../test.pl -c ../chain.sh -T + @../test.pl -T -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' testimpr: - @../test.pl -c ../chain.sh -K + @../test.pl -K -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' testnew: - @../test.pl -c ../chain.sh -F + @../test.pl -F -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' test: - @../test.pl -c ../chain.sh + @../test.pl -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' -tests.log: ../test.pl - @../test.pl -c ../chain.sh +tests.log: + @../test.pl -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' clean: - @for dir in *; do \ - if [ -d "$$dir" ]; then \ - $(RM) $$dir/*.txt $$dir/*.dot $$dir/*.gb $$dir/*.out; \ - fi; \ - done; + find . -name '*.out' -execdir $(RM) '{}' \; + find . -name '*.gb' -execdir $(RM) '{}' \; + find . -name '*.dot' -execdir $(RM) '{}' \; + find . -mindepth 2 -name '*.txt' -execdir $(RM) '{}' \; + $(RM) tests.log show: @for dir in *; do \ diff --git a/regression/goto-instrument-wmm-core/chain.sh b/regression/goto-instrument-wmm-core/chain.sh index 9081eeb0a72..bc20a12d802 100755 --- a/regression/goto-instrument-wmm-core/chain.sh +++ b/regression/goto-instrument-wmm-core/chain.sh @@ -1,9 +1,13 @@ #!/bin/bash -src=../../../src -goto_cc=$src/goto-cc/goto-cc -goto_instrument=$src/goto-instrument/goto-instrument -cbmc=$src/cbmc/cbmc +set -e + +goto_cc=$1 +goto_instrument=$2 +cbmc=$3 +is_windows=$4 + +shift 4 function usage() { echo "Usage: chain architecture [strategy] test_file.c" @@ -24,8 +28,8 @@ else usage fi -arch=${arch,,} -strategy=${strategy,,} +arch=$(echo $arch | tr A-Z a-z) +strategy=$(echo $strategy | tr A-Z a-z) if [[ "tso|pso|rmo|power|arm|sc|cav11|" =~ "$arch|" ]] then @@ -54,6 +58,10 @@ else flag= fi -timeout 180.0s $goto_cc -o $name.gb $name.c -timeout 180.0s $goto_instrument $flag $name.gb ${name}_$arch.gb $strat -timeout 180.0s $cbmc ${name}_$arch.gb +if [[ "${is_windows}" == "true" ]]; then + $goto_cc "${name}.c" "/Fe${name}.gb" +else + $goto_cc -o "${name}.gb" "${name}.c" +fi +perl -e 'alarm shift @ARGV; exec @ARGV' 180 "$goto_instrument" $flag "$name.gb" "${name}_$arch.gb" $strat +perl -e 'alarm shift @ARGV; exec @ARGV' 180 "$cbmc" "${name}_$arch.gb" diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPT/test.desc index eef495ecf4d..6c1120c36f7 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE aclwdrr002.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc index 828d4ff073c..232f57c05b2 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH aclwdrr006.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc index 116c2584958..ae08f4457ed 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH aclwdrr008.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPT/test.desc index 2ff2ea749c1..7f0ef2386c4 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE aclwdrr010.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPT/test.desc index a882f6d6be5..bf7988da60d 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE aclwdrr011.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPT/test.desc index 2545fa72c52..86d0e3b44f2 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE aclwdrr013.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc index b27703fd10b..ef175868c23 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH aclwsrr002.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPT/test.desc index bc1cf53e2fe..1f55bc1d82a 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE bclwdww001.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPT/test.desc index c3cec1f57e0..36e35076ef8 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE bclwdww003.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPT/test.desc index 98a40b4be9e..940710220ce 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE bclwdww005.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPT/test.desc index 24a94827b4f..2676c9f56d5 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE iriw+lwsyncs.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPT/test.desc index 8e6c4c6a937..e338a6ee8c2 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr000.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPT/test.desc index e9e9c2fa117..5de52405cf7 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr000.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPT/test.desc index 5a5e42faa65..9f77e8e563a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr001.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPT/test.desc index 585bac114a7..b3e5e1a4c78 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr004.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPT/test.desc index df2bc8d9865..da0099baa60 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr004.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPT/test.desc index 8226b7d29bd..f019a7caa35 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr006.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPT/test.desc index 514687d6844..d83ab34c6bd 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr007.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPT/test.desc index a7e92aed554..81835b91f36 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr010.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPT/test.desc index 41cf2d4e764..cf8d75ed097 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr016.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPT/test.desc index c1f7dc95189..b9c322f8494 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr016.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPT/test.desc index d2245604249..b52a572465e 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr017.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPT/test.desc index b0aeda5bde6..5b30d9142b4 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr019.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPT/test.desc index f7138656a69..2e59ab8ee58 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE lwdwr019.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPT/test.desc index 65b9e6816f6..396c71d6b20 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrr001.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPT/test.desc index d05029a140e..daa4eb3f66a 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrw001.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPT/test.desc index 26cad876007..a4df03c059c 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr001.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPT/test.desc index 4f9b8556b1a..133b832157b 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr002.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPT/test.desc index 0f2238be125..db2548c37cc 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr003.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPT/test.desc index 92d15961418..fe3082b005e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr006.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPT/test.desc index f749e08ea12..5d30fd8b32e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr007.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPT/test.desc index e5ce2be03f9..cd3a7ced767 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr008.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPT/test.desc index bc66a6fda94..044f3997484 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr010.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPT/test.desc index 3a3ccdfaf16..1dcaf8cf2d6 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr011.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPT/test.desc index 063c0934067..85dd1a753f9 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr012.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPT/test.desc index 51a22558daa..78e5676c4fc 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr013.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPT/test.desc index a775c2fd36a..46a523752f5 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr014.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPT/test.desc index a7eeab4022c..da386e06a62 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE podrwposwr015.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc index 31099299b74..70d8a7ec496 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH posrr004.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc index 12272137892..29b2360ed30 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH rfe000.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc index 029d08be22d..ee81b6eceba 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH rfe001.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc index 25c8aaf692d..035e20ec58d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe002.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc index 1dfe45ffb7f..b34c0a51386 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe019.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc index 794137db90b..defe8f0ae76 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe025.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc index 2f549614819..034c33fe502 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe027.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc index a9dbc0c1fde..331a18b934b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe044.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc index 841db8066c3..2c29e4ea2f8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe049.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc index 18a2936d848..4ce0e5100c4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe051.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc index 60164d4c51d..7c8dee57ad7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe057.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc index d098fdf539f..dc993bfba67 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe075.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc index 785b07555a7..e61199effd5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe078.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc index 61dcc399234..5a4bbfba858 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe081.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc index 34fbb9ae149..63dc94561e2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe087.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc index cf5bb625e65..ff72d905930 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe090.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc index c7127543662..c7a8273e69b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe100.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc index df5f128fe4d..e3a71b8a6dd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe102.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc index f85ad91d24c..b7b3d62923b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe104.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc index 38c88eaa5c5..0c4f0acf588 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe105.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc index e8dc99d3759..c5c7c88e09f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe107.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc index cafeb9d2eac..ee895c98e98 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH safe110.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc index 941426aca9a..483fd84844a 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH thin000.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc index 9aa83e7cc7d..fd09c5fe062 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH thin001.c POWER OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPT/test.desc index 894881903b4..b7322917b01 100644 --- a/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix004.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPT/test.desc index a816de43367..7632e3bdf2d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix004.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPT/test.desc index 819ccefbe30..d6a4b7712a4 100644 --- a/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix005.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPT/test.desc index 8874cc39cd0..d5adc5a2223 100644 --- a/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix005.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPT/test.desc index efdba1cf5e6..dddcbc430cf 100644 --- a/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix007.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPT/test.desc index b7b528fdb3f..23d1d65ca65 100644 --- a/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix007.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPT/test.desc index 005e4b43223..ee6d005d8e6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix008.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPT/test.desc index 24baeefabf1..e278fa83086 100644 --- a/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix008.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPT/test.desc index b714fde0c09..c16048ebf5a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix013.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPT/test.desc index 47e10eae714..66b1affb0e1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix013.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPT/test.desc index a47ca08e1ee..cd402902e93 100644 --- a/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix014.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPT/test.desc index b478166f69d..139cc677b37 100644 --- a/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix014.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPT/test.desc index 28f98f16140..46396748e2a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix017.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPT/test.desc index 75ed13da5aa..7fbc2f890f7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix017.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPT/test.desc index d0a7110a62a..fa4ef3f403b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix018.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPT/test.desc index 607a308ae98..5f955d9b9e5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix018.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPT/test.desc index 8f223444053..40e9f4286a7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix020.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPT/test.desc index 2292be1692e..3517bac24f2 100644 --- a/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix020.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPT/test.desc index bc9e87c3607..6935454f5fa 100644 --- a/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix021.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPT/test.desc index acc366dc05c..ce445dc4214 100644 --- a/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix021.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPT/test.desc index 0f44735c46a..78e9b806de4 100644 --- a/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix023.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPT/test.desc index ee595ced38b..81d95f87583 100644 --- a/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix023.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPT/test.desc index 1ee909d064b..3a1360124f4 100644 --- a/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix026.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPT/test.desc index 5eaf386f101..796fa268b6c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix026.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPT/test.desc index a169c499875..d139bf72b8e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix027.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPT/test.desc index 0fb2fee1acd..562b776e880 100644 --- a/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix027.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPT/test.desc index fd59c286c39..bc368c66db0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix029.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPT/test.desc index f16dcaf8def..5b8f93d0b79 100644 --- a/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix029.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPT/test.desc index ac3a3be4bef..c46fb0666c5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix030.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPT/test.desc index 357dfeb3b69..faaf5306dff 100644 --- a/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix030.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPT/test.desc index 4e0907d5b7a..53ab1618eb6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix036.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPT/test.desc index dad1a2c9266..eb8f0f1e5bf 100644 --- a/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix036.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPT/test.desc index df0ed485710..9c86a7aec25 100644 --- a/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix037.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPT/test.desc index 47b61eaa1ee..e65fb702947 100644 --- a/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix037.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPT/test.desc index 8ef8640272b..68b5a48bca4 100644 --- a/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix039.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPT/test.desc index 628f6f614fb..05a59783ffa 100644 --- a/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix039.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPT/test.desc index 3616015b505..3c4f605cc4c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix040.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPT/test.desc index 5386e289f02..d0f207b5462 100644 --- a/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix040.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPT/test.desc index bf2f2ca3bad..50b0ee8a846 100644 --- a/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix043.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPT/test.desc index 44edde8167f..5ac0ec1cc9d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix043.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPT/test.desc index c4d734bcb56..cd154a9264d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix044.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPT/test.desc index 61a46afaf88..3a072c61360 100644 --- a/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix044.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPT/test.desc index f6e8bda37ea..43884f5fb26 100644 --- a/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix046.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPT/test.desc index 88bac31b357..964f6dbd41e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix046.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPT/test.desc index 10e9913e551..dca29116099 100644 --- a/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix047.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPT/test.desc index 8d4f05ac09b..ba676e974e7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix047.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPT/test.desc index 859ca484914..7fa25b8bfd5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix050.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPT/test.desc index f4da3048caa..9d4b8808cd1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix050.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPT/test.desc index 9a98c3bfd8a..ecc67fa18cf 100644 --- a/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix051.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPT/test.desc index 711957889be..416033dab99 100644 --- a/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix051.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPT/test.desc index bb7c665dded..77a119783f0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix053.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPT/test.desc index aff2ec159fb..76f0e4377b4 100644 --- a/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix053.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPT/test.desc index 7416679121c..239ccf014f1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix055.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPT/test.desc index bb064b23b63..8d9b9e68e41 100644 --- a/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix055.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPT/test.desc index c72183aa9ef..a59c1cbc4d7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix057.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPT/test.desc index dcbe9799b49..ec91075aa00 100644 --- a/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPT/test.desc @@ -1,6 +1,7 @@ CORE mix057.c TSO OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc index 6f67a403927..742978c85a6 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH rfi000.c TSO OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc index 9cc90846eab..8c6a820ea20 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc @@ -1,6 +1,7 @@ THOROUGH rfi003.c TSO OPT +^EXIT=0$ ^SIGNAL=0$ ^VERIFICATION SUCCESSFUL$ -- diff --git a/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPT/test.desc index db9371238d9..1f26ea640d2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE safe034.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- diff --git a/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPT/test.desc index 6e3439b220d..4bdc0169633 100644 --- a/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPT/test.desc @@ -1,6 +1,7 @@ CORE thin002.c POWER OPT +^EXIT=10$ ^SIGNAL=0$ ^VERIFICATION FAILED$ -- From be58114d36b91261bb0fa17f3812d1c532e2c489 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Wed, 17 Mar 2021 00:15:51 +0000 Subject: [PATCH 20/25] Add regression tests from goto-instrument-wmm-full.tgz Make all regression tests from the archive available (yet marking them as THOROUGH or KNOWNBUG to avoid including them by default). This avoids having an unused archive file bit-rotting in the repository. This commit was generated as follows: ``` set -e cd regression/goto-instrument-wmm-core/ tar xzf ../goto-instrument-wmm-full.tgz --strip-components=1 for f in $(tar tzf ../goto-instrument-wmm-full.tgz | sed 's#^goto-instrument-wmm-full/##') do [ -f $f ] || continue if git status --porcelain $f | grep -q '^?' then if [[ $(basename $f) == "test.desc" ]] then sed -i '1s/^CORE$/THOROUGH/' $f if ! grep -q EXIT $f then if grep -q "VERIFICATION FAILED" $f then sed -i '/SIGNAL=0/ i ^EXIT=10$' $f else sed -i '/SIGNAL=0/ i ^EXIT=0$' $f fi fi elif [[ $f =~ \.c$ ]] then clang-format -i $f fi git add $f else git checkout -- $f fi done git rm ../goto-instrument-wmm-full.tgz git commit -F - < 0 bytes 9439 files changed, 371401 insertions(+) create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_CAV11_ERROR/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_ALL/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPC/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_ALL/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPC/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_SC_SAFE/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_ALL/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPC/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/aclwdrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_CAV11_ERROR/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_ALL/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPC/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_ALL/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPC/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_SC_SAFE/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_ALL/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPC/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/aclwdrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_CAV11_SAFE/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_ALL/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_ALL/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPC/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_ALL/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPC/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_SC_SAFE/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/aclwdrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_CAV11_SAFE/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_ALL/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPC/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_ALL/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPC/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_SC_SAFE/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_ALL/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPC/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/aclwdrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_CAV11_ERROR/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_ALL/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPC/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_ALL/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPC/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_ALL/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPC/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_SC_SAFE/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_ALL/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPC/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/aclwdrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_CAV11_ERROR/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_ALL/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPC/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_ALL/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPC/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_SC_SAFE/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_ALL/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPC/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/aclwdrr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_CAV11_SAFE/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_ALL/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPC/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_ALL/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPC/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_ALL/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPC/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_SC_SAFE/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/aclwdrr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_CAV11_SAFE/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_ALL/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPC/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_ALL/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPC/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_ALL/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPC/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_SC_SAFE/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_ALL/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPC/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/aclwdrr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_CAV11_ERROR/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_ALL/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPC/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_ALL/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPC/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_ALL/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPC/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_SC_SAFE/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_ALL/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPC/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/aclwdrr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_CAV11_SAFE/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_ALL/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPC/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_ALL/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPC/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_ALL/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPC/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_SC_SAFE/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_ALL/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPC/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/aclwdrr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_CAV11_ERROR/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_ALL/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPC/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_ALL/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPC/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_SC_SAFE/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_ALL/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPC/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/aclwdrr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_CAV11_ERROR/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_ALL/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPC/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_ALL/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPC/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_SC_SAFE/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_ALL/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPC/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/aclwdrr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_CAV11_SAFE/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_ALL/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPC/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_ALL/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPC/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_SC_SAFE/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_ALL/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPC/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/aclwdrr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_CAV11_SAFE/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_ALL/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPC/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_ALL/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPC/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_SC_SAFE/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_ALL/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPC/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/aclwdrr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_CAV11_ERROR/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_ALL/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPC/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_ALL/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPC/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_SC_SAFE/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_ALL/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPC/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/aclwdrr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_CAV11_ERROR/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_ALL/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPC/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_ALL/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPC/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_SC_SAFE/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_ALL/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPC/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/aclwdrr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_CAV11_ERROR/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_ALL/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPC/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_SC_SAFE/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_ALL/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPC/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/aclwsrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_CAV11_ERROR/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_ALL/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPC/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_ALL/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPC/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_ALL/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPC/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_SC_SAFE/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_ALL/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPC/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/aclwsrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_CAV11_SAFE/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_ALL/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPC/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_SC_SAFE/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_ALL/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPC/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/aclwsrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_ALL/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPC/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_ALL/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPC/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_ALL/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPC/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/bclwdww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_ALL/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPC/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_ALL/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPC/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_ALL/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPC/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_ALL/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPC/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/bclwdww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_ALL/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPC/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_ALL/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPC/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_ALL/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPC/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_ALL/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPC/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/bclwdww002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_ALL/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPC/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_ALL/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPC/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_ALL/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPC/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_ALL/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPC/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/bclwdww003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_ALL/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPC/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_ALL/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPC/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_ALL/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPC/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_ALL/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPC/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/bclwdww004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_ALL/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPC/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_ALL/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPC/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_ALL/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPC/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_ALL/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPC/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/bclwdww005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_ALL/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPC/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_ALL/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPC/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_ALL/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPC/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_ALL/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPC/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/bclwdww006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_ALL/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPC/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_ALL/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPC/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_ALL/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPC/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/bclwdww007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_ALL/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPC/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_ALL/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPC/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_ALL/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPC/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_ALL/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPC/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/bclwdww009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_ALL/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPC/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_ALL/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPC/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_ALL/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPC/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_ALL/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPC/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/bclwsww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_ALL/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPC/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_ALL/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPC/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_ALL/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPC/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_ALL/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPC/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/iriw+addrs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_ALL/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPC/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_ALL/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPC/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_ALL/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPC/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_ALL/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPC/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/iriw+lwsync+addr.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_ALL/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPC/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_ALL/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPC/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_ALL/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPC/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_ALL/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPC/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/iriw+lwsyncs.c create mode 100644 regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_ALL/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPC/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_ALL/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPC/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_ALL/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPC/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_ALL/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPC/lwdwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_ALL/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPC/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_ALL/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPC/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_ALL/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPC/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_ALL/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPC/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/lwdwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_ALL/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPC/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_ALL/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPC/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_ALL/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPC/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_ALL/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPC/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/lwdwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_ALL/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPC/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_ALL/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPC/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_ALL/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPC/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_ALL/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPC/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/lwdwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_ALL/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPC/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_ALL/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPC/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_ALL/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPC/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_ALL/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPC/lwdwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_ALL/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPC/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_ALL/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPC/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_ALL/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPC/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_ALL/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPC/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/lwdwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_ALL/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPC/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_ALL/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPC/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_ALL/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPC/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_ALL/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPC/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/lwdwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_ALL/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPC/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_ALL/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPC/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_ALL/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPC/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_ALL/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPC/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/lwdwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_ALL/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPC/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_ALL/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPC/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_ALL/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPC/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_ALL/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPC/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/lwdwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_ALL/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPC/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_ALL/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPC/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_ALL/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPC/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_ALL/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPC/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/lwdwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_ALL/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPC/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_ALL/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPC/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_ALL/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPC/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_ALL/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPC/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/lwdwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_ALL/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPC/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_ALL/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPC/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_ALL/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPC/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_ALL/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPC/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/lwdwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_ALL/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPC/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_ALL/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPC/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_ALL/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPC/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_ALL/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPC/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/lwdwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_ALL/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPC/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_ALL/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPC/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_ALL/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPC/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_ALL/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPC/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/lwdwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_ALL/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPC/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_ALL/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPC/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_ALL/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPC/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_ALL/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPC/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/lwdwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_ALL/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPC/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_ALL/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPC/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_ALL/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPC/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_ALL/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPC/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/lwdwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_ALL/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPC/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_ALL/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPC/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_ALL/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPC/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_ALL/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPC/lwdwr016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_ALL/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPC/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_ALL/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPC/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_ALL/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPC/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_ALL/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPC/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/lwdwr017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_ALL/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPC/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_ALL/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPC/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_ALL/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPC/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_ALL/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPC/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/lwdwr018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_ALL/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPC/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_ALL/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPC/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_ALL/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPC/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_ALL/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPC/lwdwr019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_ALL/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPC/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_ALL/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPC/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_ALL/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPC/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_ALL/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPC/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/lwdwr020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_ALL/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPC/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_ALL/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPC/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_ALL/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPC/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_ALL/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPC/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/lwdwr021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_ALL/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPC/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_ALL/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPC/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_ALL/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPC/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_ALL/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPC/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/lwswr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_ALL/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPC/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_ALL/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPC/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_ALL/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPC/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_ALL/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPC/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/lwswr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_ALL/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPC/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_ALL/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPC/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_ALL/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPC/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_ALL/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPC/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/lwswr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_ALL/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPC/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_ALL/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPC/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_ALL/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPC/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_ALL/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPC/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/lwswr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/mix000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_PSO_ALL/mix000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPC/mix000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/mix000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_RMO_ALL/mix000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPC/mix000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/mix000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/mix000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_TSO_ALL/mix000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPC/mix000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/mix000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_POWER_ALL/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPC/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_RMO_ALL/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPC/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/podrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_POWER_ALL/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPC/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_PSO_ALL/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPC/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_RMO_ALL/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPC/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_TSO_ALL/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPC/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/podrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_POWER_ALL/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPC/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_RMO_ALL/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPC/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/podrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_POWER_ALL/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPC/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_PSO_ALL/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPC/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_RMO_ALL/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPC/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_TSO_ALL/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPC/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/podrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_POWER_ALL/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPC/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_RMO_ALL/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPC/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/podrw000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_POWER_ALL/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPC/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_PSO_ALL/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPC/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_RMO_ALL/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPC/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_TSO_ALL/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPC/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/podrw001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_ALL/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPC/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_ALL/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPC/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_ALL/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPC/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_ALL/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPC/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/podrwposwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_ALL/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPC/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_ALL/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPC/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_ALL/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPC/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_ALL/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPC/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/podrwposwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_ALL/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPC/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_ALL/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPC/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_ALL/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPC/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_ALL/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPC/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/podrwposwr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_ALL/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPC/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_ALL/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPC/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_ALL/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPC/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_ALL/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPC/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/podrwposwr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_ALL/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPC/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_ALL/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPC/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_ALL/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPC/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_ALL/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPC/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/podrwposwr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_ALL/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPC/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_ALL/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPC/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_ALL/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPC/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_ALL/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPC/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/podrwposwr005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_ALL/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPC/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_ALL/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPC/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_ALL/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPC/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_ALL/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPC/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/podrwposwr006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_ALL/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPC/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_ALL/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPC/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_ALL/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPC/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_ALL/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPC/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/podrwposwr007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_ALL/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPC/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_ALL/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPC/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_ALL/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPC/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_ALL/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPC/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/podrwposwr008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_ALL/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPC/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_ALL/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPC/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/podrwposwr009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_ALL/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPC/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_ALL/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPC/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_ALL/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPC/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_ALL/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPC/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/podrwposwr010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_ALL/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPC/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_ALL/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPC/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_ALL/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPC/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_ALL/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPC/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/podrwposwr011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_ALL/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPC/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_ALL/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPC/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/podrwposwr012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_ALL/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPC/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_ALL/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPC/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_ALL/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPC/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_ALL/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPC/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/podrwposwr013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_ALL/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPC/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_ALL/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPC/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_ALL/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPC/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_ALL/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPC/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/podrwposwr014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_ALL/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPC/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_ALL/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPC/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_ALL/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPC/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_ALL/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPC/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/podrwposwr015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_POWER_ALL/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPC/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_PSO_ALL/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPC/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_RMO_ALL/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPC/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_TSO_ALL/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPC/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_POWER_ALL/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPC/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_PSO_ALL/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPC/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_RMO_ALL/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPC/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_TSO_ALL/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPC/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_POWER_ALL/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPC/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_PSO_ALL/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPC/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_RMO_ALL/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPC/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/podww000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_POWER_ALL/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPC/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_PSO_ALL/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPC/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_RMO_ALL/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPC/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/podww001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_POWER_ALL/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPC/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_PSO_ALL/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPC/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_RMO_ALL/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_SC_SAFE/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_TSO_ALL/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPC/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/posrr000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_POWER_ALL/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPC/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_PSO_ALL/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPC/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_RMO_ALL/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPC/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_TSO_ALL/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPC/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/posrr001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_POWER_ALL/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPC/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_PSO_ALL/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPC/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_RMO_ALL/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPC/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_TSO_ALL/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPC/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/posrr002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_POWER_ALL/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPC/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_PSO_ALL/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPC/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_RMO_ALL/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPC/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_TSO_ALL/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPC/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/posrr003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_POWER_ALL/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPC/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_PSO_ALL/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPC/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_RMO_ALL/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPC/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_TSO_ALL/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPC/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/posrr004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_POWER_ALL/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPC/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_PSO_ALL/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPC/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_RMO_ALL/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPC/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_TSO_ALL/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPC/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/rfe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_POWER_ALL/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPC/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_PSO_ALL/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPC/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_RMO_ALL/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPC/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_TSO_ALL/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPC/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/rfe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_POWER_ALL/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPC/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_PSO_ALL/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPC/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_RMO_ALL/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPC/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_TSO_ALL/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPC/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/rfe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_POWER_ALL/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPC/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_PSO_ALL/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPC/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_RMO_ALL/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPC/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_TSO_ALL/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPC/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/rfe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_POWER_ALL/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPC/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_PSO_ALL/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPC/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_RMO_ALL/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPC/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_TSO_ALL/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPC/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/rfe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_POWER_ALL/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPC/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_PSO_ALL/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPC/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_RMO_ALL/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPC/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_TSO_ALL/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPC/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/rfe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_POWER_ALL/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPC/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_RMO_ALL/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPC/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/rfe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_POWER_ALL/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPC/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_PSO_ALL/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPC/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_RMO_ALL/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPC/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_TSO_ALL/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPC/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_POWER_ALL/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPC/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_PSO_ALL/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPC/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_RMO_ALL/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPC/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_TSO_ALL/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPC/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_POWER_ALL/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPC/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_PSO_ALL/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPC/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_RMO_ALL/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPC/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_TSO_ALL/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPC/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_POWER_ALL/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPC/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_PSO_ALL/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPC/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_RMO_ALL/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPC/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_TSO_ALL/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPC/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/safe000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_POWER_ALL/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPC/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_PSO_ALL/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPC/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_RMO_ALL/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPC/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_TSO_ALL/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPC/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/safe001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_POWER_ALL/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPC/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_RMO_ALL/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPC/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/safe002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_POWER_ALL/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPC/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_RMO_ALL/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPC/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/safe003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_POWER_ALL/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_RMO_ALL/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPC/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/safe004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_POWER_ALL/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPC/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_PSO_ALL/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPC/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_RMO_ALL/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPC/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_TSO_ALL/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPC/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/safe005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_POWER_ALL/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPC/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_PSO_ALL/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPC/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_RMO_ALL/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPC/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_TSO_ALL/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPC/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/safe006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/safe007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/safe008.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_POWER_ALL/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPC/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/safe009.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_POWER_ALL/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPC/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_PSO_ALL/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPC/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_RMO_ALL/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPC/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_TSO_ALL/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPC/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/safe010.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_POWER_ALL/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPC/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_PSO_ALL/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPC/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_RMO_ALL/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPC/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_TSO_ALL/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPC/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/safe011.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_POWER_ALL/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPC/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/safe012.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_POWER_ALL/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPC/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/safe013.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_POWER_ALL/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPC/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_PSO_ALL/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPC/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_RMO_ALL/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPC/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_TSO_ALL/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPC/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/safe014.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_POWER_ALL/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPC/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_PSO_ALL/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPC/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_RMO_ALL/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPC/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_TSO_ALL/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPC/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/safe015.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_POWER_ALL/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPC/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_PSO_ALL/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPC/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_RMO_ALL/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPC/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_TSO_ALL/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPC/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/safe016.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_POWER_ALL/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPC/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_PSO_ALL/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPC/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_RMO_ALL/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPC/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_TSO_ALL/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPC/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/safe017.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_POWER_ALL/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPC/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_PSO_ALL/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPC/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_RMO_ALL/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPC/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_TSO_ALL/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPC/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/safe018.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/safe019.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/safe020.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_POWER_ALL/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPC/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/safe021.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_POWER_ALL/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPC/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_PSO_ALL/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPC/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_RMO_ALL/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPC/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_TSO_ALL/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPC/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/safe022.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_POWER_ALL/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPC/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_PSO_ALL/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPC/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_RMO_ALL/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPC/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_TSO_ALL/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPC/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/safe023.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_POWER_ALL/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPC/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_PSO_ALL/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPC/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_RMO_ALL/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPC/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_TSO_ALL/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPC/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/safe024.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_POWER_ALL/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPC/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_PSO_ALL/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPC/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_RMO_ALL/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPC/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_TSO_ALL/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPC/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/safe025.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_POWER_ALL/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPC/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_PSO_ALL/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPC/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_RMO_ALL/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPC/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_TSO_ALL/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPC/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/safe026.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_POWER_ALL/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPC/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_PSO_ALL/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPC/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_RMO_ALL/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPC/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/safe027.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_POWER_ALL/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPC/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_PSO_ALL/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPC/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_RMO_ALL/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPC/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/safe028.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_POWER_ALL/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPC/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_PSO_ALL/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPC/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_RMO_ALL/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPC/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_TSO_ALL/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPC/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/safe029.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_POWER_ALL/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPC/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_PSO_ALL/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPC/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_RMO_ALL/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPC/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_TSO_ALL/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPC/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/safe030.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_POWER_ALL/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPC/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_PSO_ALL/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPC/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_RMO_ALL/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPC/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_TSO_ALL/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPC/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/safe031.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_POWER_ALL/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPC/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_PSO_ALL/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPC/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_RMO_ALL/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPC/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_TSO_ALL/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPC/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/safe032.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/safe033.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_POWER_ALL/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPC/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/safe034.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_POWER_ALL/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPC/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_PSO_ALL/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPC/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_RMO_ALL/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPC/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_TSO_ALL/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPC/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/safe035.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_POWER_ALL/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPC/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_PSO_ALL/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPC/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_RMO_ALL/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPC/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_TSO_ALL/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPC/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/safe036.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_POWER_ALL/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPC/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/safe037.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_POWER_ALL/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPC/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/safe038.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_POWER_ALL/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPC/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_PSO_ALL/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPC/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_RMO_ALL/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPC/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_TSO_ALL/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPC/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/safe039.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_POWER_ALL/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPC/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_PSO_ALL/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPC/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_RMO_ALL/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPC/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_TSO_ALL/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPC/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/safe040.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_POWER_ALL/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPC/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_PSO_ALL/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPC/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_RMO_ALL/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPC/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_TSO_ALL/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPC/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/safe041.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_POWER_ALL/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPC/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_PSO_ALL/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPC/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_RMO_ALL/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPC/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_TSO_ALL/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPC/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/safe042.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_POWER_ALL/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPC/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_PSO_ALL/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPC/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_RMO_ALL/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPC/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/safe043.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_POWER_ALL/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPC/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/safe044.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_POWER_ALL/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPC/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/safe045.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_POWER_ALL/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPC/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_PSO_ALL/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPC/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_RMO_ALL/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPC/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_TSO_ALL/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPC/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/safe046.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_POWER_ALL/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPC/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_PSO_ALL/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPC/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_RMO_ALL/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPC/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_TSO_ALL/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPC/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/safe047.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_POWER_ALL/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPC/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_PSO_ALL/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPC/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_RMO_ALL/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPC/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_TSO_ALL/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPC/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/safe048.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_POWER_ALL/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPC/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_PSO_ALL/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPC/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_RMO_ALL/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPC/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/safe049.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_POWER_ALL/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPC/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_PSO_ALL/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPC/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_RMO_ALL/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPC/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/safe050.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_POWER_ALL/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPC/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_PSO_ALL/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPC/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_RMO_ALL/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPC/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/safe051.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_POWER_ALL/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPC/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_PSO_ALL/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPC/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_RMO_ALL/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPC/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/safe052.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_POWER_ALL/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPC/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_PSO_ALL/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPC/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_RMO_ALL/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPC/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_TSO_ALL/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPC/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/safe053.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_POWER_ALL/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPC/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_PSO_ALL/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPC/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_RMO_ALL/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPC/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/safe054.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_POWER_ALL/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPC/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_PSO_ALL/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPC/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_RMO_ALL/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPC/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_TSO_ALL/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPC/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/safe055.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_POWER_ALL/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPC/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_PSO_ALL/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPC/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_RMO_ALL/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPC/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_TSO_ALL/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPC/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/safe056.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_POWER_ALL/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPC/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/safe057.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_POWER_ALL/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPC/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_PSO_ALL/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPC/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_RMO_ALL/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPC/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_TSO_ALL/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPC/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/safe058.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_POWER_ALL/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPC/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_PSO_ALL/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPC/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_RMO_ALL/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPC/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_TSO_ALL/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPC/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/safe059.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_POWER_ALL/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPC/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_PSO_ALL/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPC/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_RMO_ALL/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPC/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_TSO_ALL/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPC/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/safe060.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/safe061.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_POWER_ALL/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPC/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_PSO_ALL/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPC/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_RMO_ALL/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPC/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_TSO_ALL/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPC/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/safe062.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_POWER_ALL/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPC/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_PSO_ALL/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPC/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_RMO_ALL/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPC/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_TSO_ALL/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPC/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/safe063.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_POWER_ALL/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPC/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_PSO_ALL/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPC/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_RMO_ALL/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPC/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_TSO_ALL/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPC/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/safe064.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/safe065.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_POWER_ALL/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPC/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_PSO_ALL/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPC/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_RMO_ALL/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPC/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_TSO_ALL/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPC/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/safe066.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_POWER_ALL/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPC/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_PSO_ALL/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPC/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_RMO_ALL/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPC/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_TSO_ALL/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPC/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/safe067.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_POWER_ALL/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPC/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_PSO_ALL/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPC/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_RMO_ALL/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPC/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_TSO_ALL/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPC/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/safe068.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_POWER_ALL/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPC/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_PSO_ALL/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPC/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_RMO_ALL/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPC/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_TSO_ALL/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPC/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/safe069.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_POWER_ALL/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPC/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_PSO_ALL/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPC/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_RMO_ALL/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPC/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_TSO_ALL/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPC/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/safe070.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_POWER_ALL/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPC/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_PSO_ALL/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPC/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_RMO_ALL/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPC/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_TSO_ALL/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPC/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/safe071.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_POWER_ALL/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPC/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_PSO_ALL/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPC/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_RMO_ALL/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPC/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_TSO_ALL/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPC/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/safe072.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_POWER_ALL/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPC/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_PSO_ALL/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPC/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_RMO_ALL/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPC/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_TSO_ALL/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPC/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/safe073.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_POWER_ALL/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPC/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_PSO_ALL/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPC/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_RMO_ALL/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPC/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_TSO_ALL/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPC/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/safe074.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_POWER_ALL/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPC/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_RMO_ALL/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPC/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/safe075.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_POWER_ALL/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPC/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_PSO_ALL/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPC/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_RMO_ALL/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPC/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_TSO_ALL/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPC/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/safe076.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_POWER_ALL/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPC/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_PSO_ALL/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPC/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_RMO_ALL/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPC/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_TSO_ALL/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPC/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/safe077.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_POWER_ALL/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPC/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_RMO_ALL/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPC/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/safe078.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_POWER_ALL/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPC/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_PSO_ALL/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPC/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_RMO_ALL/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPC/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_TSO_ALL/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPC/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/safe079.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_POWER_ALL/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPC/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_PSO_ALL/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPC/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_RMO_ALL/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPC/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_TSO_ALL/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPC/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/safe080.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_POWER_ALL/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPC/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_PSO_ALL/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPC/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_RMO_ALL/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPC/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_TSO_ALL/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPC/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/safe081.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_POWER_ALL/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPC/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_PSO_ALL/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPC/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_RMO_ALL/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPC/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_TSO_ALL/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPC/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/safe082.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_POWER_ALL/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPC/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_PSO_ALL/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPC/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_RMO_ALL/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPC/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_TSO_ALL/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPC/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/safe083.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_POWER_ALL/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPC/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_PSO_ALL/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPC/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_RMO_ALL/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPC/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_TSO_ALL/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPC/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/safe084.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_POWER_ALL/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPC/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/safe085.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_POWER_ALL/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPC/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_PSO_ALL/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPC/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_RMO_ALL/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPC/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_TSO_ALL/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPC/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/safe086.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_POWER_ALL/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPC/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_PSO_ALL/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPC/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_RMO_ALL/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPC/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_TSO_ALL/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPC/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/safe087.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_POWER_ALL/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPC/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/safe088.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_POWER_ALL/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPC/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_PSO_ALL/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPC/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_RMO_ALL/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPC/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_TSO_ALL/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPC/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/safe089.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_POWER_ALL/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPC/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_PSO_ALL/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPC/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_RMO_ALL/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPC/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_TSO_ALL/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPC/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/safe090.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_POWER_ALL/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPC/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_PSO_ALL/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPC/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_RMO_ALL/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPC/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_TSO_ALL/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPC/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/safe091.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_POWER_ALL/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPC/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_PSO_ALL/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPC/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_RMO_ALL/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPC/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_TSO_ALL/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPC/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/safe092.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_POWER_ALL/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPC/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_PSO_ALL/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPC/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_RMO_ALL/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPC/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_TSO_ALL/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPC/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/safe093.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_POWER_ALL/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPC/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/safe094.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_POWER_ALL/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPC/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_PSO_ALL/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPC/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_RMO_ALL/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPC/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_TSO_ALL/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPC/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/safe095.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_POWER_ALL/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPC/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_PSO_ALL/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPC/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_RMO_ALL/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPC/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_TSO_ALL/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPC/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/safe096.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_POWER_ALL/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPC/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_PSO_ALL/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPC/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_RMO_ALL/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPC/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_TSO_ALL/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPC/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/safe097.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/safe098.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_POWER_ALL/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPC/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_PSO_ALL/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPC/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_RMO_ALL/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPC/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_TSO_ALL/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPC/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/safe099.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_POWER_ALL/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPC/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_PSO_ALL/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPC/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_RMO_ALL/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPC/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_TSO_ALL/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPC/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/safe100.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_POWER_ALL/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPC/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_PSO_ALL/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPC/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_RMO_ALL/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPC/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_TSO_ALL/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPC/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/safe101.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_POWER_ALL/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPC/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_PSO_ALL/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPC/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_RMO_ALL/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPC/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_TSO_ALL/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPC/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/safe102.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_POWER_ALL/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPC/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_PSO_ALL/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPC/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_RMO_ALL/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPC/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_TSO_ALL/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPC/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/safe103.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_POWER_ALL/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPC/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_PSO_ALL/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPC/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_RMO_ALL/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPC/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/safe104.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/safe105.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_POWER_ALL/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPC/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_PSO_ALL/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPC/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_RMO_ALL/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPC/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_TSO_ALL/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPC/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/safe106.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_POWER_ALL/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPC/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_PSO_ALL/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPC/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_RMO_ALL/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPC/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_TSO_ALL/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPC/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/safe107.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_POWER_ALL/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPC/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_PSO_ALL/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPC/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_RMO_ALL/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPC/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_TSO_ALL/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPC/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/safe108.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_POWER_ALL/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPC/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_PSO_ALL/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPC/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_RMO_ALL/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPC/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_TSO_ALL/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPC/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/safe109.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_POWER_ALL/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPC/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_PSO_ALL/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPC/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_RMO_ALL/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPC/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_TSO_ALL/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPC/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/safe110.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_POWER_ALL/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPC/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_PSO_ALL/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPC/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_RMO_ALL/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPC/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_TSO_ALL/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPC/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/safe111.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_POWER_ALL/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPC/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_RMO_ALL/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPC/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/safe112.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_POWER_ALL/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPC/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_PSO_ALL/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPC/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_RMO_ALL/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPC/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_TSO_ALL/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPC/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/safe113.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_POWER_ALL/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPC/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_PSO_ALL/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPC/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_RMO_ALL/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPC/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_TSO_ALL/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPC/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/safe114.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_POWER_ALL/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPC/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_PSO_ALL/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPC/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_RMO_ALL/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPC/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/safe115.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_POWER_ALL/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPC/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/safe116.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_POWER_ALL/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPC/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_PSO_ALL/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPC/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_RMO_ALL/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPC/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_TSO_ALL/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPC/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/safe117.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_POWER_ALL/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPC/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_PSO_ALL/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPC/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_RMO_ALL/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPC/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_TSO_ALL/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPC/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/safe118.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_POWER_ALL/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPC/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_PSO_ALL/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPC/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_RMO_ALL/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPC/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_TSO_ALL/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPC/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/safe119.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_POWER_ALL/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPC/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_PSO_ALL/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPC/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_RMO_ALL/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPC/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_TSO_ALL/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPC/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/safe120.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_POWER_ALL/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPC/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_PSO_ALL/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPC/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_RMO_ALL/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPC/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_TSO_ALL/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPC/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/safe121.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_POWER_ALL/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPC/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/safe122.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_POWER_ALL/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPC/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_PSO_ALL/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPC/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_RMO_ALL/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPC/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_TSO_ALL/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPC/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/safe123.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_POWER_ALL/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPC/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_PSO_ALL/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPC/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_RMO_ALL/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPC/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_TSO_ALL/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPC/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/safe124.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_POWER_ALL/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPC/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_PSO_ALL/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPC/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_RMO_ALL/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPC/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_TSO_ALL/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPC/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/safe125.c create mode 100644 regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_POWER_ALL/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPC/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_PSO_ALL/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPC/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_RMO_ALL/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPC/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_TSO_ALL/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPC/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/thin000.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_POWER_ALL/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPC/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_PSO_ALL/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPC/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_RMO_ALL/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPC/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_TSO_ALL/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPC/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/thin001.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_POWER_ALL/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPC/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_PSO_ALL/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPC/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_RMO_ALL/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPC/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_TSO_ALL/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPC/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/thin002.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_POWER_ALL/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPC/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_PSO_ALL/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPC/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_RMO_ALL/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPC/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_TSO_ALL/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPC/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/thin003.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_POWER_ALL/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPC/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_PSO_ALL/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPC/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_RMO_ALL/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPC/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_TSO_ALL/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPC/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/thin004.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_POWER_ALL/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPC/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_PSO_ALL/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPC/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_RMO_ALL/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPC/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_TSO_ALL/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPC/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/thin005.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_POWER_ALL/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPC/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_PSO_ALL/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPC/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_RMO_ALL/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPC/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_TSO_ALL/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPC/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/thin006.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_POWER_ALL/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPC/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_PSO_ALL/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPC/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_RMO_ALL/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPC/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_TSO_ALL/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPC/thin007.c create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/thin007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_POWER_ALL/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_POWER_OPC/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_PSO_ALL/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_PSO_OPC/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_RMO_ALL/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_RMO_OPC/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_TSO_ALL/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_TSO_OPC/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/mix000.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_POWER_ALL/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_POWER_OPC/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_PSO_ALL/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_PSO_OPC/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_RMO_ALL/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_RMO_OPC/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_TSO_ALL/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_TSO_OPC/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/mix001.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_POWER_ALL/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_POWER_OPC/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_PSO_ALL/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_PSO_OPC/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_RMO_ALL/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_RMO_OPC/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_TSO_ALL/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_TSO_OPC/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/mix002.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_POWER_ALL/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_POWER_OPC/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_PSO_ALL/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_PSO_OPC/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_RMO_ALL/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_RMO_OPC/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_TSO_ALL/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_TSO_OPC/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/mix003.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_POWER_ALL/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_POWER_OPC/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_PSO_ALL/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_PSO_OPC/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_RMO_ALL/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_RMO_OPC/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_TSO_ALL/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_TSO_OPC/mix004.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix004_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_POWER_ALL/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_POWER_OPC/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_PSO_ALL/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_PSO_OPC/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_RMO_ALL/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_RMO_OPC/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_TSO_ALL/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_TSO_OPC/mix005.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix005_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_POWER_ALL/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_POWER_OPC/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_PSO_ALL/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_PSO_OPC/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_RMO_ALL/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_RMO_OPC/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_TSO_ALL/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_TSO_OPC/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/mix006.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_POWER_ALL/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_POWER_OPC/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_PSO_ALL/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_PSO_OPC/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_RMO_ALL/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_RMO_OPC/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_TSO_ALL/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_TSO_OPC/mix007.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix007_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_POWER_ALL/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_POWER_OPC/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_PSO_ALL/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_PSO_OPC/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_RMO_ALL/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_RMO_OPC/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_TSO_ALL/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_TSO_OPC/mix008.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix008_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_POWER_ALL/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_POWER_OPC/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_PSO_ALL/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_PSO_OPC/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_RMO_ALL/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_RMO_OPC/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_TSO_ALL/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_TSO_OPC/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/mix009.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_POWER_ALL/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_POWER_OPC/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_PSO_ALL/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_PSO_OPC/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_RMO_ALL/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_RMO_OPC/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_TSO_ALL/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_TSO_OPC/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/mix010.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_POWER_ALL/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_POWER_OPC/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_PSO_ALL/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_PSO_OPC/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_RMO_ALL/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_RMO_OPC/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_TSO_ALL/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_TSO_OPC/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/mix011.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_POWER_ALL/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_POWER_OPC/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_PSO_ALL/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_PSO_OPC/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_RMO_ALL/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_RMO_OPC/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_TSO_ALL/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_TSO_OPC/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/mix012.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_POWER_ALL/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_POWER_OPC/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_PSO_ALL/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_PSO_OPC/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_RMO_ALL/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_RMO_OPC/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_TSO_ALL/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_TSO_OPC/mix013.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix013_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_POWER_ALL/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_POWER_OPC/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_PSO_ALL/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_PSO_OPC/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_RMO_ALL/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_RMO_OPC/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_TSO_ALL/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_TSO_OPC/mix014.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix014_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_POWER_ALL/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_POWER_OPC/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_PSO_ALL/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_PSO_OPC/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_RMO_ALL/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_RMO_OPC/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_TSO_ALL/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_TSO_OPC/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/mix015.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_POWER_ALL/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_POWER_OPC/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_PSO_ALL/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_PSO_OPC/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_RMO_ALL/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_RMO_OPC/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_TSO_ALL/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_TSO_OPC/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/mix016.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_POWER_ALL/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_POWER_OPC/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_PSO_ALL/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_PSO_OPC/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_RMO_ALL/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_RMO_OPC/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_TSO_ALL/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_TSO_OPC/mix017.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix017_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_POWER_ALL/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_POWER_OPC/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_PSO_ALL/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_PSO_OPC/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_RMO_ALL/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_RMO_OPC/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_TSO_ALL/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_TSO_OPC/mix018.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix018_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_POWER_ALL/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_POWER_OPC/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_PSO_ALL/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_PSO_OPC/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_RMO_ALL/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_RMO_OPC/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_TSO_ALL/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_TSO_OPC/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/mix019.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_POWER_ALL/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_POWER_OPC/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_PSO_ALL/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_PSO_OPC/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_RMO_ALL/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_RMO_OPC/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_TSO_ALL/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_TSO_OPC/mix020.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix020_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_POWER_ALL/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_POWER_OPC/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_PSO_ALL/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_PSO_OPC/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_RMO_ALL/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_RMO_OPC/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_TSO_ALL/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_TSO_OPC/mix021.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix021_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_POWER_ALL/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_POWER_OPC/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_PSO_ALL/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_PSO_OPC/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_RMO_ALL/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_RMO_OPC/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_TSO_ALL/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_TSO_OPC/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/mix022.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_POWER_ALL/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_POWER_OPC/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_PSO_ALL/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_PSO_OPC/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_RMO_ALL/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_RMO_OPC/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_TSO_ALL/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_TSO_OPC/mix023.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix023_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_POWER_ALL/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_POWER_OPC/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_PSO_ALL/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_PSO_OPC/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_RMO_ALL/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_RMO_OPC/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_TSO_ALL/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_TSO_OPC/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/mix024.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_POWER_ALL/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_POWER_OPC/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_PSO_ALL/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_PSO_OPC/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_RMO_ALL/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_RMO_OPC/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_TSO_ALL/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_TSO_OPC/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/mix025.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_POWER_ALL/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_POWER_OPC/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_PSO_ALL/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_PSO_OPC/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_RMO_ALL/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_RMO_OPC/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_TSO_ALL/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_TSO_OPC/mix026.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix026_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_POWER_ALL/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_POWER_OPC/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_PSO_ALL/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_PSO_OPC/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_RMO_ALL/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_RMO_OPC/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_TSO_ALL/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_TSO_OPC/mix027.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix027_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_POWER_ALL/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_POWER_OPC/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_PSO_ALL/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_PSO_OPC/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_RMO_ALL/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_RMO_OPC/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_TSO_ALL/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_TSO_OPC/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/mix028.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_POWER_ALL/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_POWER_OPC/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_PSO_ALL/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_PSO_OPC/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_RMO_ALL/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_RMO_OPC/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_TSO_ALL/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_TSO_OPC/mix029.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix029_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_POWER_ALL/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_POWER_OPC/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_PSO_ALL/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_PSO_OPC/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_RMO_ALL/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_RMO_OPC/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_TSO_ALL/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_TSO_OPC/mix030.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix030_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_POWER_ALL/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_POWER_OPC/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_PSO_ALL/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_PSO_OPC/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_RMO_ALL/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_RMO_OPC/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_TSO_ALL/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_TSO_OPC/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/mix031.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_POWER_ALL/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_POWER_OPC/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_PSO_ALL/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_PSO_OPC/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_RMO_ALL/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_RMO_OPC/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_TSO_ALL/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_TSO_OPC/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/mix032.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_POWER_ALL/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_POWER_OPC/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_PSO_ALL/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_PSO_OPC/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_RMO_ALL/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_RMO_OPC/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_TSO_ALL/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_TSO_OPC/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/mix033.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_POWER_ALL/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_POWER_OPC/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_PSO_ALL/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_PSO_OPC/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_RMO_ALL/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_RMO_OPC/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_TSO_ALL/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_TSO_OPC/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/mix034.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_POWER_ALL/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_POWER_OPC/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_PSO_ALL/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_PSO_OPC/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_RMO_ALL/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_RMO_OPC/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_TSO_ALL/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_TSO_OPC/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/mix035.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_POWER_ALL/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_POWER_OPC/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_PSO_ALL/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_PSO_OPC/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_RMO_ALL/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_RMO_OPC/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_TSO_ALL/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_TSO_OPC/mix036.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix036_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_POWER_ALL/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_POWER_OPC/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_PSO_ALL/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_PSO_OPC/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_RMO_ALL/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_RMO_OPC/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_TSO_ALL/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_TSO_OPC/mix037.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix037_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_POWER_ALL/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_POWER_OPC/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_PSO_ALL/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_PSO_OPC/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_RMO_ALL/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_RMO_OPC/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_TSO_ALL/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_TSO_OPC/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/mix038.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_POWER_ALL/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_POWER_OPC/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_PSO_ALL/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_PSO_OPC/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_RMO_ALL/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_RMO_OPC/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_TSO_ALL/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_TSO_OPC/mix039.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix039_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_POWER_ALL/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_POWER_OPC/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_PSO_ALL/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_PSO_OPC/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_RMO_ALL/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_RMO_OPC/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_TSO_ALL/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_TSO_OPC/mix040.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix040_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_POWER_ALL/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_POWER_OPC/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_PSO_ALL/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_PSO_OPC/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_RMO_ALL/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_RMO_OPC/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_TSO_ALL/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_TSO_OPC/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/mix041.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_POWER_ALL/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_POWER_OPC/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_PSO_ALL/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_PSO_OPC/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_RMO_ALL/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_RMO_OPC/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_TSO_ALL/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_TSO_OPC/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/mix042.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_POWER_ALL/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_POWER_OPC/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_PSO_ALL/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_PSO_OPC/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_RMO_ALL/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_RMO_OPC/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_TSO_ALL/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_TSO_OPC/mix043.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix043_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_POWER_ALL/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_POWER_OPC/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_PSO_ALL/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_PSO_OPC/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_RMO_ALL/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_RMO_OPC/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_TSO_ALL/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_TSO_OPC/mix044.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix044_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_POWER_ALL/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_POWER_OPC/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_PSO_ALL/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_PSO_OPC/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_RMO_ALL/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_RMO_OPC/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_TSO_ALL/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_TSO_OPC/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/mix045.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_POWER_ALL/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_POWER_OPC/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_PSO_ALL/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_PSO_OPC/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_RMO_ALL/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_RMO_OPC/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_TSO_ALL/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_TSO_OPC/mix046.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix046_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_POWER_ALL/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_POWER_OPC/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_PSO_ALL/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_PSO_OPC/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_RMO_ALL/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_RMO_OPC/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_TSO_ALL/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_TSO_OPC/mix047.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix047_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_POWER_ALL/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_POWER_OPC/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_PSO_ALL/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_PSO_OPC/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_RMO_ALL/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_RMO_OPC/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_TSO_ALL/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_TSO_OPC/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/mix048.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_POWER_ALL/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_POWER_OPC/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_PSO_ALL/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_PSO_OPC/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_RMO_ALL/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_RMO_OPC/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_TSO_ALL/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_TSO_OPC/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/mix049.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_POWER_ALL/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_POWER_OPC/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_PSO_ALL/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_PSO_OPC/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_RMO_ALL/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_RMO_OPC/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_TSO_ALL/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_TSO_OPC/mix050.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix050_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_POWER_ALL/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_POWER_OPC/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_PSO_ALL/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_PSO_OPC/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_RMO_ALL/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_RMO_OPC/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_TSO_ALL/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_TSO_OPC/mix051.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix051_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_POWER_ALL/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_POWER_OPC/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_PSO_ALL/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_PSO_OPC/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_RMO_ALL/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_RMO_OPC/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_TSO_ALL/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_TSO_OPC/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/mix052.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_POWER_ALL/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_POWER_OPC/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_PSO_ALL/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_PSO_OPC/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_RMO_ALL/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_RMO_OPC/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_TSO_ALL/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_TSO_OPC/mix053.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix053_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_POWER_ALL/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_POWER_OPC/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_PSO_ALL/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_PSO_OPC/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_RMO_ALL/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_RMO_OPC/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_TSO_ALL/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_TSO_OPC/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/mix054.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_POWER_ALL/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_POWER_OPC/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_PSO_ALL/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_PSO_OPC/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_RMO_ALL/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_RMO_OPC/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_TSO_ALL/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_TSO_OPC/mix055.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix055_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_POWER_ALL/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_POWER_OPC/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_PSO_ALL/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_PSO_OPC/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_RMO_ALL/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_RMO_OPC/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_TSO_ALL/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_TSO_OPC/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/mix056.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_POWER_ALL/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_POWER_OPC/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_PSO_ALL/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_PSO_OPC/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_RMO_ALL/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_RMO_OPC/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_TSO_ALL/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_TSO_OPC/mix057.c create mode 100644 regression/goto-instrument-wmm-core/x86_mix057_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_POWER_ALL/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPC/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_PSO_ALL/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPC/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_RMO_ALL/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPC/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_TSO_ALL/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPC/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/podwr000.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_POWER_ALL/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPC/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_PSO_ALL/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPC/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_RMO_ALL/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPC/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_TSO_ALL/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPC/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/podwr001.c create mode 100644 regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_POWER_ALL/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPC/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_PSO_ALL/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPC/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_RMO_ALL/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPC/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_TSO_ALL/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPC/rfi000.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_POWER_ALL/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPC/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_PSO_ALL/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPC/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_RMO_ALL/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPC/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_TSO_ALL/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPC/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/rfi001.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_POWER_ALL/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPC/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_PSO_ALL/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPC/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_RMO_ALL/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPC/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_TSO_ALL/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPC/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/rfi002.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_POWER_ALL/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPC/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_PSO_ALL/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPC/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_RMO_ALL/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPC/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_TSO_ALL/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPC/rfi003.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_POWER_ALL/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPC/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_PSO_ALL/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPC/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_RMO_ALL/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPC/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_TSO_ALL/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPC/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/rfi004.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_POWER_ALL/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPC/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_PSO_ALL/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPC/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_RMO_ALL/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPC/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_TSO_ALL/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPC/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/rfi005.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_POWER_ALL/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPC/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_PSO_ALL/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPC/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_RMO_ALL/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPC/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_TSO_ALL/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPC/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/rfi006.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_POWER_ALL/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPC/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_PSO_ALL/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPC/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_RMO_ALL/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPC/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_TSO_ALL/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPC/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/rfi007.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_POWER_ALL/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPC/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_PSO_ALL/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPC/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_RMO_ALL/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPC/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_TSO_ALL/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPC/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/rfi008.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_POWER_ALL/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPC/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_PSO_ALL/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPC/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_RMO_ALL/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPC/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_TSO_ALL/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPC/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/rfi009.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_POWER_ALL/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPC/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_PSO_ALL/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPC/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_RMO_ALL/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPC/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_TSO_ALL/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPC/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/rfi010.c create mode 100644 regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_POWER_ALL/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_POWER_OPC/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_PSO_ALL/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_PSO_OPC/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_RMO_ALL/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_RMO_OPC/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_TSO_ALL/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_TSO_OPC/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/safe000.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_POWER_ALL/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_POWER_OPC/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_PSO_ALL/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_PSO_OPC/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_RMO_ALL/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_RMO_OPC/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_TSO_ALL/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_TSO_OPC/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/safe001.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_POWER_ALL/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_POWER_OPC/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_PSO_ALL/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_PSO_OPC/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_RMO_ALL/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_RMO_OPC/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_TSO_ALL/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_TSO_OPC/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/safe002.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_POWER_ALL/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_POWER_OPC/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_PSO_ALL/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_PSO_OPC/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_RMO_ALL/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_RMO_OPC/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_TSO_ALL/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_TSO_OPC/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/safe003.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_POWER_ALL/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_POWER_OPC/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_PSO_ALL/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_PSO_OPC/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_RMO_ALL/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_RMO_OPC/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_TSO_ALL/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_TSO_OPC/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/safe004.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_POWER_ALL/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_POWER_OPC/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_PSO_ALL/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_PSO_OPC/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_RMO_ALL/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_RMO_OPC/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_TSO_ALL/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_TSO_OPC/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/safe005.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_POWER_ALL/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_POWER_OPC/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_PSO_ALL/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_PSO_OPC/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_RMO_ALL/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_RMO_OPC/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_TSO_ALL/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_TSO_OPC/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/safe006.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_POWER_ALL/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_POWER_OPC/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_PSO_ALL/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_PSO_OPC/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_RMO_ALL/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_RMO_OPC/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_TSO_ALL/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_TSO_OPC/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/safe007.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_POWER_ALL/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_POWER_OPC/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_PSO_ALL/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_PSO_OPC/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_RMO_ALL/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_RMO_OPC/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/safe008.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_POWER_ALL/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_POWER_OPC/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_PSO_ALL/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_PSO_OPC/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_RMO_ALL/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_RMO_OPC/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_TSO_ALL/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_TSO_OPC/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/safe009.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_POWER_ALL/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_POWER_OPC/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_PSO_ALL/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_PSO_OPC/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_RMO_ALL/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_RMO_OPC/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/safe010.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_POWER_ALL/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_POWER_OPC/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_PSO_ALL/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_PSO_OPC/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_RMO_ALL/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_RMO_OPC/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/safe011.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_POWER_ALL/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_POWER_OPC/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_PSO_ALL/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_PSO_OPC/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_RMO_ALL/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_RMO_OPC/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_TSO_ALL/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_TSO_OPC/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/safe012.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_POWER_ALL/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_POWER_OPC/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_PSO_ALL/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_PSO_OPC/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_RMO_ALL/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_RMO_OPC/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/safe013.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_POWER_ALL/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_POWER_OPC/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_PSO_ALL/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_PSO_OPC/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_RMO_ALL/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_RMO_OPC/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_TSO_ALL/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_TSO_OPC/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/safe014.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_POWER_ALL/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_POWER_OPC/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_PSO_ALL/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_PSO_OPC/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_RMO_ALL/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_RMO_OPC/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_TSO_ALL/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_TSO_OPC/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/safe015.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_POWER_ALL/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_POWER_OPC/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_PSO_ALL/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_PSO_OPC/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_RMO_ALL/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_RMO_OPC/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_TSO_ALL/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_TSO_OPC/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/safe016.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_POWER_ALL/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_POWER_OPC/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_PSO_ALL/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_PSO_OPC/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_RMO_ALL/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_RMO_OPC/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/safe017.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_POWER_ALL/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_POWER_OPC/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_PSO_ALL/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_PSO_OPC/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_RMO_ALL/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_RMO_OPC/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_TSO_ALL/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_TSO_OPC/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/safe018.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_POWER_ALL/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_POWER_OPC/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_PSO_ALL/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_PSO_OPC/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_RMO_ALL/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_RMO_OPC/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_TSO_ALL/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_TSO_OPC/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/safe019.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_POWER_ALL/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_POWER_OPC/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_RMO_ALL/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_RMO_OPC/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/safe020.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_POWER_ALL/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_POWER_OPC/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_PSO_ALL/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_PSO_OPC/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_RMO_ALL/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_RMO_OPC/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_TSO_ALL/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_TSO_OPC/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/safe021.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_POWER_ALL/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_POWER_OPC/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_PSO_ALL/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_PSO_OPC/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_RMO_ALL/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_RMO_OPC/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_TSO_ALL/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_TSO_OPC/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/safe022.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_POWER_ALL/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_POWER_OPC/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_PSO_ALL/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_PSO_OPC/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_RMO_ALL/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_RMO_OPC/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_TSO_ALL/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_TSO_OPC/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/safe023.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_POWER_ALL/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_POWER_OPC/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_PSO_ALL/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_PSO_OPC/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_RMO_ALL/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_RMO_OPC/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_TSO_ALL/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_TSO_OPC/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/safe024.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_POWER_ALL/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_POWER_OPC/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_PSO_ALL/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_PSO_OPC/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_RMO_ALL/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_RMO_OPC/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_TSO_ALL/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_TSO_OPC/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/safe025.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_POWER_ALL/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_POWER_OPC/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_PSO_ALL/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_PSO_OPC/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_RMO_ALL/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_RMO_OPC/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_TSO_ALL/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_TSO_OPC/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/safe026.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_POWER_ALL/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_POWER_OPC/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_RMO_ALL/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_RMO_OPC/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/safe027.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_POWER_ALL/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_POWER_OPC/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_PSO_ALL/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_PSO_OPC/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_RMO_ALL/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_RMO_OPC/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_TSO_ALL/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_TSO_OPC/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/safe028.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_POWER_ALL/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_POWER_OPC/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_PSO_ALL/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_PSO_OPC/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_RMO_ALL/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_RMO_OPC/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/safe029.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_POWER_ALL/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_POWER_OPC/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_PSO_ALL/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_PSO_OPC/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_RMO_ALL/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_RMO_OPC/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/safe030.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_POWER_ALL/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_POWER_OPC/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_PSO_ALL/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_PSO_OPC/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_RMO_ALL/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_RMO_OPC/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_TSO_ALL/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_TSO_OPC/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/safe031.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_POWER_ALL/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_POWER_OPC/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_PSO_ALL/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_PSO_OPC/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_RMO_ALL/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_RMO_OPC/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_TSO_ALL/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_TSO_OPC/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/safe032.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_POWER_ALL/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_POWER_OPC/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_PSO_ALL/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_PSO_OPC/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_RMO_ALL/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_RMO_OPC/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/safe033.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_POWER_ALL/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_POWER_OPC/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_PSO_ALL/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_PSO_OPC/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_RMO_ALL/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_RMO_OPC/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_TSO_ALL/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_TSO_OPC/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/safe034.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_POWER_ALL/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_POWER_OPC/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_PSO_ALL/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_PSO_OPC/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_RMO_ALL/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_RMO_OPC/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_TSO_ALL/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_TSO_OPC/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/safe035.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_POWER_ALL/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_POWER_OPC/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_PSO_ALL/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_PSO_OPC/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_RMO_ALL/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_RMO_OPC/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_TSO_ALL/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_TSO_OPC/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/safe036.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_POWER_ALL/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_POWER_OPC/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_PSO_ALL/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_PSO_OPC/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_RMO_ALL/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_RMO_OPC/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_TSO_ALL/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_TSO_OPC/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/safe037.c create mode 100644 regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_POWER_ALL/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_POWER_OPC/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_PSO_ALL/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_PSO_OPC/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_RMO_ALL/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_RMO_OPC/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_TSO_ALL/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_TSO_OPC/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/thin000.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_POWER_ALL/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_POWER_OPC/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_PSO_ALL/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_PSO_OPC/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_RMO_ALL/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_RMO_OPC/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_TSO_ALL/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_TSO_OPC/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/thin001.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_POWER_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_POWER_ALL/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_POWER_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_POWER_OPC/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_PSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_PSO_ALL/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_PSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_PSO_OPC/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_RMO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_RMO_ALL/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_RMO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_RMO_OPC/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_TSO_ALL/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_TSO_ALL/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_TSO_OPC/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_TSO_OPC/thin002.c create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc create mode 100644 regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/thin002.c delete mode 100644 regression/goto-instrument-wmm-full.tgz diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_CAV11_ERROR/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_CAV11_ERROR/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_CAV11_ERROR/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..6a40fee064c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/test.desc new file mode 100644 index 00000000000..670d7917905 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/test.desc new file mode 100644 index 00000000000..bfcf2ac027b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc new file mode 100644 index 00000000000..ca68c4f0f7a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_ALL/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_ALL/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_ALL/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_ALL/test.desc new file mode 100644 index 00000000000..3df3289c24d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPC/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPC/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPC/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPC/test.desc new file mode 100644 index 00000000000..76febe0b852 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc new file mode 100644 index 00000000000..05ca712bb2b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_ALL/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_ALL/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_ALL/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_ALL/test.desc new file mode 100644 index 00000000000..beb2fde311d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPC/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPC/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPC/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPC/test.desc new file mode 100644 index 00000000000..3ee375683ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc new file mode 100644 index 00000000000..aeac7959231 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_SC_SAFE/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_SC_SAFE/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_SC_SAFE/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_SC_SAFE/test.desc new file mode 100644 index 00000000000..6c176e98189 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_ALL/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_ALL/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_ALL/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_ALL/test.desc new file mode 100644 index 00000000000..b24d68025dc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPC/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPC/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPC/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPC/test.desc new file mode 100644 index 00000000000..d38704530c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/aclwdrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/aclwdrr000.c new file mode 100644 index 00000000000..dbcf57315f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/aclwdrr000.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc new file mode 100644 index 00000000000..0fd5ceabfb8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_CAV11_ERROR/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_CAV11_ERROR/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_CAV11_ERROR/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..55b7767338e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/test.desc new file mode 100644 index 00000000000..333ec15e8eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/test.desc new file mode 100644 index 00000000000..cebb0df0fbd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc new file mode 100644 index 00000000000..c329c5a85d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_ALL/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_ALL/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_ALL/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_ALL/test.desc new file mode 100644 index 00000000000..f02bd904823 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPC/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPC/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPC/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPC/test.desc new file mode 100644 index 00000000000..3a27b8fdba7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc new file mode 100644 index 00000000000..cdbe0603878 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_ALL/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_ALL/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_ALL/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_ALL/test.desc new file mode 100644 index 00000000000..6e8213cce86 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPC/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPC/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPC/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPC/test.desc new file mode 100644 index 00000000000..271f59b6847 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc new file mode 100644 index 00000000000..f230232308b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_SC_SAFE/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_SC_SAFE/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_SC_SAFE/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_SC_SAFE/test.desc new file mode 100644 index 00000000000..eafe628abb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_ALL/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_ALL/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_ALL/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_ALL/test.desc new file mode 100644 index 00000000000..54994dcd301 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPC/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPC/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPC/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPC/test.desc new file mode 100644 index 00000000000..a39d2e14dac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/aclwdrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/aclwdrr001.c new file mode 100644 index 00000000000..0a859fcfdf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/aclwdrr001.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc new file mode 100644 index 00000000000..5e9ca61e645 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_CAV11_SAFE/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_CAV11_SAFE/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_CAV11_SAFE/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..730faee9d32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr002.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_ALL/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_ALL/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_ALL/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_ALL/test.desc new file mode 100644 index 00000000000..1b6f7116ec9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +aclwdrr002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/test.desc new file mode 100644 index 00000000000..fdc3afa55ca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_ALL/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_ALL/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_ALL/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_ALL/test.desc new file mode 100644 index 00000000000..2a1d12f02db --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr002.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPC/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPC/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPC/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPC/test.desc new file mode 100644 index 00000000000..d23736d5a4a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr002.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc new file mode 100644 index 00000000000..41b2394cd4b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr002.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_ALL/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_ALL/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_ALL/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_ALL/test.desc new file mode 100644 index 00000000000..053c8771f6f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr002.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPC/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPC/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPC/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPC/test.desc new file mode 100644 index 00000000000..3207b91d533 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr002.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc new file mode 100644 index 00000000000..35fc2c0d786 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr002.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_SC_SAFE/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_SC_SAFE/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_SC_SAFE/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_SC_SAFE/test.desc new file mode 100644 index 00000000000..7b0d369158e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/test.desc new file mode 100644 index 00000000000..3264870f732 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/test.desc new file mode 100644 index 00000000000..bdaee3cac1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/aclwdrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/aclwdrr002.c new file mode 100644 index 00000000000..1a46a0a2023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/aclwdrr002.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc new file mode 100644 index 00000000000..a15da614cb2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_CAV11_SAFE/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_CAV11_SAFE/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_CAV11_SAFE/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..1e727fe2281 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr003.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/test.desc new file mode 100644 index 00000000000..0f922c48431 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/test.desc new file mode 100644 index 00000000000..c08db79f84d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc new file mode 100644 index 00000000000..9a2cf5aa3b1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_ALL/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_ALL/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_ALL/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_ALL/test.desc new file mode 100644 index 00000000000..5811047555e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPC/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPC/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPC/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPC/test.desc new file mode 100644 index 00000000000..79275e3fb15 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc new file mode 100644 index 00000000000..3b958683ef2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_ALL/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_ALL/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_ALL/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_ALL/test.desc new file mode 100644 index 00000000000..7126336540e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPC/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPC/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPC/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPC/test.desc new file mode 100644 index 00000000000..042b8c5d66b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc new file mode 100644 index 00000000000..314a2dcff8a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_SC_SAFE/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_SC_SAFE/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_SC_SAFE/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_SC_SAFE/test.desc new file mode 100644 index 00000000000..984d297ca51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_ALL/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_ALL/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_ALL/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_ALL/test.desc new file mode 100644 index 00000000000..1448b951fbf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPC/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPC/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPC/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPC/test.desc new file mode 100644 index 00000000000..6901d4eb6cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/aclwdrr003.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/aclwdrr003.c new file mode 100644 index 00000000000..62f28b33cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/aclwdrr003.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc new file mode 100644 index 00000000000..1d41cc01852 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr003.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_CAV11_ERROR/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_CAV11_ERROR/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_CAV11_ERROR/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..dff5b1f89b1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr004.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_ALL/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_ALL/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_ALL/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_ALL/test.desc new file mode 100644 index 00000000000..231c2d5318d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPC/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPC/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPC/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPC/test.desc new file mode 100644 index 00000000000..5983eb1468f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc new file mode 100644 index 00000000000..038e040e75b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_ALL/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_ALL/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_ALL/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_ALL/test.desc new file mode 100644 index 00000000000..dc7fa9a64a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPC/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPC/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPC/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPC/test.desc new file mode 100644 index 00000000000..ee1308ffbb2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc new file mode 100644 index 00000000000..23ea920c9fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_ALL/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_ALL/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_ALL/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_ALL/test.desc new file mode 100644 index 00000000000..f6fe41461a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPC/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPC/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPC/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPC/test.desc new file mode 100644 index 00000000000..9b2a07b760c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc new file mode 100644 index 00000000000..f67c9a8d2f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_SC_SAFE/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_SC_SAFE/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_SC_SAFE/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_SC_SAFE/test.desc new file mode 100644 index 00000000000..50cfa45dfad --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr004.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_ALL/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_ALL/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_ALL/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_ALL/test.desc new file mode 100644 index 00000000000..8208d280d77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPC/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPC/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPC/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPC/test.desc new file mode 100644 index 00000000000..8070eb166db --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/aclwdrr004.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/aclwdrr004.c new file mode 100644 index 00000000000..d1e4188f7a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/aclwdrr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc new file mode 100644 index 00000000000..7364c4ef53c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr004.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_CAV11_ERROR/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_CAV11_ERROR/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_CAV11_ERROR/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..ab814ed47e6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr005.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/test.desc new file mode 100644 index 00000000000..0fd059dfc0a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/test.desc new file mode 100644 index 00000000000..0b2d28d67a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc new file mode 100644 index 00000000000..075d4679e34 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_ALL/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_ALL/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_ALL/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_ALL/test.desc new file mode 100644 index 00000000000..5b9664a7bd9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPC/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPC/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPC/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPC/test.desc new file mode 100644 index 00000000000..9396c36ccde --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc new file mode 100644 index 00000000000..ff3745d6148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_ALL/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_ALL/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_ALL/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_ALL/test.desc new file mode 100644 index 00000000000..d5988eb7598 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPC/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPC/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPC/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPC/test.desc new file mode 100644 index 00000000000..15bc5aa3a90 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc new file mode 100644 index 00000000000..1bd1f55fad6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_SC_SAFE/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_SC_SAFE/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_SC_SAFE/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_SC_SAFE/test.desc new file mode 100644 index 00000000000..95758f8b320 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr005.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_ALL/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_ALL/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_ALL/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_ALL/test.desc new file mode 100644 index 00000000000..c2cd0d174f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPC/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPC/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPC/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPC/test.desc new file mode 100644 index 00000000000..a101b1ef918 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/aclwdrr005.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/aclwdrr005.c new file mode 100644 index 00000000000..1126c99fa24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/aclwdrr005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc new file mode 100644 index 00000000000..f8a9d85d909 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr005.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_CAV11_SAFE/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_CAV11_SAFE/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_CAV11_SAFE/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..4d9c0830ad1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr006.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_ALL/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_ALL/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_ALL/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_ALL/test.desc new file mode 100644 index 00000000000..38dfeda66c5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr006.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPC/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPC/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPC/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPC/test.desc new file mode 100644 index 00000000000..fac90b00885 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr006.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_ALL/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_ALL/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_ALL/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_ALL/test.desc new file mode 100644 index 00000000000..bf914e02555 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr006.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPC/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPC/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPC/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPC/test.desc new file mode 100644 index 00000000000..9f47ab2ca6b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr006.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc new file mode 100644 index 00000000000..b930cf3fd26 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr006.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_ALL/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_ALL/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_ALL/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_ALL/test.desc new file mode 100644 index 00000000000..53efe1bfa5b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr006.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPC/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPC/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPC/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPC/test.desc new file mode 100644 index 00000000000..8ac95b12667 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr006.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc new file mode 100644 index 00000000000..e8a1e0b9aa1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr006.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_SC_SAFE/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_SC_SAFE/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_SC_SAFE/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_SC_SAFE/test.desc new file mode 100644 index 00000000000..0fd8ed1c043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr006.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/test.desc new file mode 100644 index 00000000000..e0641732ef4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr006.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/test.desc new file mode 100644 index 00000000000..ba7942a681c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr006.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/aclwdrr006.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/aclwdrr006.c new file mode 100644 index 00000000000..6d88c2a297a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/aclwdrr006.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc new file mode 100644 index 00000000000..fb1948d5900 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr006.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_CAV11_SAFE/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_CAV11_SAFE/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_CAV11_SAFE/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..940bb54c6b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr007.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_ALL/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_ALL/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_ALL/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_ALL/test.desc new file mode 100644 index 00000000000..3c15ea583c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPC/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPC/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPC/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPC/test.desc new file mode 100644 index 00000000000..526cb710ee2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc new file mode 100644 index 00000000000..73f5ddb5f47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_ALL/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_ALL/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_ALL/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_ALL/test.desc new file mode 100644 index 00000000000..3087d954cfc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPC/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPC/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPC/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPC/test.desc new file mode 100644 index 00000000000..9a0fd5d36a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc new file mode 100644 index 00000000000..87011f497a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_ALL/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_ALL/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_ALL/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_ALL/test.desc new file mode 100644 index 00000000000..c983e6ea39d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPC/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPC/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPC/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPC/test.desc new file mode 100644 index 00000000000..36dc6a20afc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc new file mode 100644 index 00000000000..f88731a37e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_SC_SAFE/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_SC_SAFE/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_SC_SAFE/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_SC_SAFE/test.desc new file mode 100644 index 00000000000..0bddc898617 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr007.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_ALL/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_ALL/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_ALL/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_ALL/test.desc new file mode 100644 index 00000000000..942eb7136b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPC/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPC/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPC/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPC/test.desc new file mode 100644 index 00000000000..b4b18f06a49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/aclwdrr007.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/aclwdrr007.c new file mode 100644 index 00000000000..c55d2e1161a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/aclwdrr007.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc new file mode 100644 index 00000000000..ba57a84cc42 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr007.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_CAV11_ERROR/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_CAV11_ERROR/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_CAV11_ERROR/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b28f8f5cd20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr008.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_ALL/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_ALL/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_ALL/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_ALL/test.desc new file mode 100644 index 00000000000..484e2b8dfb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr008.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPC/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPC/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPC/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPC/test.desc new file mode 100644 index 00000000000..c0103695d32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr008.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_ALL/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_ALL/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_ALL/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_ALL/test.desc new file mode 100644 index 00000000000..5f977f46900 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr008.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPC/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPC/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPC/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPC/test.desc new file mode 100644 index 00000000000..5067e7ae4c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr008.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc new file mode 100644 index 00000000000..a3ff2bc33b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr008.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_ALL/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_ALL/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_ALL/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_ALL/test.desc new file mode 100644 index 00000000000..d214cf91181 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr008.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPC/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPC/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPC/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPC/test.desc new file mode 100644 index 00000000000..869deee5afe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr008.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc new file mode 100644 index 00000000000..33e1df8ad59 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr008.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_SC_SAFE/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_SC_SAFE/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_SC_SAFE/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_SC_SAFE/test.desc new file mode 100644 index 00000000000..82b711d5240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr008.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_ALL/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_ALL/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_ALL/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_ALL/test.desc new file mode 100644 index 00000000000..99d5e5bd254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr008.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPC/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPC/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPC/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPC/test.desc new file mode 100644 index 00000000000..debcccd4eaa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr008.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/aclwdrr008.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/aclwdrr008.c new file mode 100644 index 00000000000..1bc4f29a252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/aclwdrr008.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc new file mode 100644 index 00000000000..8be7f872f86 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr008.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_CAV11_SAFE/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_CAV11_SAFE/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_CAV11_SAFE/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..9089f75fb7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr009.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_ALL/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_ALL/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_ALL/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_ALL/test.desc new file mode 100644 index 00000000000..5743ff5a532 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +aclwdrr009.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPC/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPC/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPC/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPC/test.desc new file mode 100644 index 00000000000..53a7d516a1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +aclwdrr009.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/test.desc new file mode 100644 index 00000000000..9b8038eaed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +aclwdrr009.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_ALL/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_ALL/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_ALL/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_ALL/test.desc new file mode 100644 index 00000000000..025dee6bcdf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr009.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPC/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPC/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPC/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPC/test.desc new file mode 100644 index 00000000000..4dda8d7449a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr009.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc new file mode 100644 index 00000000000..794b694f3c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr009.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_ALL/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_ALL/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_ALL/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_ALL/test.desc new file mode 100644 index 00000000000..7df1cf4da96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr009.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPC/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPC/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPC/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPC/test.desc new file mode 100644 index 00000000000..9beb06f853a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr009.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc new file mode 100644 index 00000000000..df9c6905b4a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr009.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_SC_SAFE/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_SC_SAFE/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_SC_SAFE/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_SC_SAFE/test.desc new file mode 100644 index 00000000000..d4c4bb9db3d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr009.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_ALL/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_ALL/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_ALL/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_ALL/test.desc new file mode 100644 index 00000000000..b1be794100d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr009.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPC/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPC/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPC/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPC/test.desc new file mode 100644 index 00000000000..150bf829910 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr009.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/aclwdrr009.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/aclwdrr009.c new file mode 100644 index 00000000000..ef2fcd3b06e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/aclwdrr009.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc new file mode 100644 index 00000000000..71df05a0c5e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr009.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_CAV11_ERROR/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_CAV11_ERROR/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_CAV11_ERROR/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..20c2ab98107 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr010.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/test.desc new file mode 100644 index 00000000000..a0115ea576d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr010.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/test.desc new file mode 100644 index 00000000000..bab9dcc86a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr010.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_ALL/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_ALL/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_ALL/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_ALL/test.desc new file mode 100644 index 00000000000..3d48c501542 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr010.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPC/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPC/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPC/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPC/test.desc new file mode 100644 index 00000000000..f263ed78225 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr010.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc new file mode 100644 index 00000000000..fd0ac58708f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr010.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_ALL/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_ALL/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_ALL/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_ALL/test.desc new file mode 100644 index 00000000000..d3c42bf1391 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr010.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPC/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPC/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPC/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPC/test.desc new file mode 100644 index 00000000000..a7473cf5220 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr010.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc new file mode 100644 index 00000000000..572e8eceee1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr010.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_SC_SAFE/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_SC_SAFE/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_SC_SAFE/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_SC_SAFE/test.desc new file mode 100644 index 00000000000..63f185b9f60 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr010.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_ALL/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_ALL/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_ALL/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_ALL/test.desc new file mode 100644 index 00000000000..adf6bae3bd8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr010.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPC/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPC/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPC/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPC/test.desc new file mode 100644 index 00000000000..311e41891c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr010.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/aclwdrr010.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/aclwdrr010.c new file mode 100644 index 00000000000..832ad4679c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/aclwdrr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc new file mode 100644 index 00000000000..13d8f4f8826 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr010.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_CAV11_ERROR/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_CAV11_ERROR/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_CAV11_ERROR/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..738bf967a8f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr011.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/test.desc new file mode 100644 index 00000000000..781eca2c629 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr011.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/test.desc new file mode 100644 index 00000000000..b52bbe7aa19 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr011.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_ALL/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_ALL/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_ALL/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_ALL/test.desc new file mode 100644 index 00000000000..98c3eb55ae9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr011.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPC/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPC/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPC/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPC/test.desc new file mode 100644 index 00000000000..21a8529819c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr011.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc new file mode 100644 index 00000000000..787dee377a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr011.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_ALL/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_ALL/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_ALL/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_ALL/test.desc new file mode 100644 index 00000000000..d5faf5b91f5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr011.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPC/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPC/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPC/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPC/test.desc new file mode 100644 index 00000000000..e909947a47d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr011.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc new file mode 100644 index 00000000000..b62dbfa12fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr011.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_SC_SAFE/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_SC_SAFE/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_SC_SAFE/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_SC_SAFE/test.desc new file mode 100644 index 00000000000..031a4765340 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr011.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_ALL/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_ALL/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_ALL/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_ALL/test.desc new file mode 100644 index 00000000000..811b0881cfb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr011.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPC/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPC/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPC/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPC/test.desc new file mode 100644 index 00000000000..df2ccacccd1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr011.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/aclwdrr011.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/aclwdrr011.c new file mode 100644 index 00000000000..f69393121a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/aclwdrr011.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc new file mode 100644 index 00000000000..13101b008e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr011.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_CAV11_SAFE/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_CAV11_SAFE/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_CAV11_SAFE/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..6b5d43a5181 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr012.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/test.desc new file mode 100644 index 00000000000..18502f2a18c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/test.desc new file mode 100644 index 00000000000..65089f81134 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc new file mode 100644 index 00000000000..52c07152ba4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_ALL/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_ALL/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_ALL/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_ALL/test.desc new file mode 100644 index 00000000000..26cf2bed1ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPC/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPC/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPC/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPC/test.desc new file mode 100644 index 00000000000..f0006e18341 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc new file mode 100644 index 00000000000..2c8b9a0b48b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_ALL/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_ALL/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_ALL/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_ALL/test.desc new file mode 100644 index 00000000000..14c602386f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPC/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPC/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPC/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPC/test.desc new file mode 100644 index 00000000000..6f051d71999 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc new file mode 100644 index 00000000000..120c958f0af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_SC_SAFE/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_SC_SAFE/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_SC_SAFE/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_SC_SAFE/test.desc new file mode 100644 index 00000000000..52879c0ce9c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr012.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_ALL/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_ALL/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_ALL/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_ALL/test.desc new file mode 100644 index 00000000000..ab75a241a68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPC/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPC/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPC/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPC/test.desc new file mode 100644 index 00000000000..6d4d366d2c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/aclwdrr012.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/aclwdrr012.c new file mode 100644 index 00000000000..a7f773d846f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/aclwdrr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc new file mode 100644 index 00000000000..1341a10a374 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr012.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_CAV11_SAFE/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_CAV11_SAFE/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_CAV11_SAFE/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..61f0258d13c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr013.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/test.desc new file mode 100644 index 00000000000..14c8e89db3b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr013.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/test.desc new file mode 100644 index 00000000000..af210dda71f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr013.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_ALL/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_ALL/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_ALL/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_ALL/test.desc new file mode 100644 index 00000000000..14c17319428 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr013.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPC/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPC/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPC/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPC/test.desc new file mode 100644 index 00000000000..5ee7f72f679 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr013.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc new file mode 100644 index 00000000000..9d7a7270242 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr013.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_ALL/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_ALL/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_ALL/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_ALL/test.desc new file mode 100644 index 00000000000..f0ef9601f10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr013.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPC/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPC/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPC/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPC/test.desc new file mode 100644 index 00000000000..ed173860e2b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr013.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc new file mode 100644 index 00000000000..8744db03881 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr013.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_SC_SAFE/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_SC_SAFE/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_SC_SAFE/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_SC_SAFE/test.desc new file mode 100644 index 00000000000..ea1e10e4226 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr013.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_ALL/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_ALL/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_ALL/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_ALL/test.desc new file mode 100644 index 00000000000..f21299e192b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr013.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPC/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPC/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPC/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPC/test.desc new file mode 100644 index 00000000000..eb0514b7e01 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr013.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/aclwdrr013.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/aclwdrr013.c new file mode 100644 index 00000000000..cc353386146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/aclwdrr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc new file mode 100644 index 00000000000..03b04d8d7d6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr013.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_CAV11_ERROR/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_CAV11_ERROR/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_CAV11_ERROR/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b39bba38f87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr014.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/test.desc new file mode 100644 index 00000000000..263c818f07f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/test.desc new file mode 100644 index 00000000000..328c1051f36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc new file mode 100644 index 00000000000..ddfad30dce1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_ALL/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_ALL/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_ALL/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_ALL/test.desc new file mode 100644 index 00000000000..26600be1ddf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPC/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPC/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPC/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPC/test.desc new file mode 100644 index 00000000000..407e2a0982a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc new file mode 100644 index 00000000000..fb4934e1102 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_ALL/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_ALL/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_ALL/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_ALL/test.desc new file mode 100644 index 00000000000..39e6dd18f67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPC/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPC/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPC/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPC/test.desc new file mode 100644 index 00000000000..a499daa1796 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc new file mode 100644 index 00000000000..d418147a8f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_SC_SAFE/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_SC_SAFE/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_SC_SAFE/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_SC_SAFE/test.desc new file mode 100644 index 00000000000..f585b0c170e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr014.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_ALL/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_ALL/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_ALL/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_ALL/test.desc new file mode 100644 index 00000000000..e5f4864530c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPC/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPC/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPC/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPC/test.desc new file mode 100644 index 00000000000..ea5ce210163 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/aclwdrr014.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/aclwdrr014.c new file mode 100644 index 00000000000..623e1a8ddc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/aclwdrr014.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc new file mode 100644 index 00000000000..e88f7a87a0d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr014.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_CAV11_ERROR/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_CAV11_ERROR/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_CAV11_ERROR/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..f68d19b9252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr015.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/test.desc new file mode 100644 index 00000000000..11edafd0dcf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/test.desc new file mode 100644 index 00000000000..7e68b7a0a30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc new file mode 100644 index 00000000000..1b782b4b797 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_ALL/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_ALL/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_ALL/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_ALL/test.desc new file mode 100644 index 00000000000..606dbd472e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPC/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPC/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPC/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPC/test.desc new file mode 100644 index 00000000000..2e1e848f760 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc new file mode 100644 index 00000000000..de5faab00a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_ALL/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_ALL/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_ALL/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_ALL/test.desc new file mode 100644 index 00000000000..88ee0158050 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPC/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPC/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPC/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPC/test.desc new file mode 100644 index 00000000000..88143cc79e5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc new file mode 100644 index 00000000000..0f9f427bcfd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_SC_SAFE/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_SC_SAFE/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_SC_SAFE/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_SC_SAFE/test.desc new file mode 100644 index 00000000000..28ca98930aa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwdrr015.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_ALL/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_ALL/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_ALL/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_ALL/test.desc new file mode 100644 index 00000000000..6171e25d9ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPC/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPC/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPC/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPC/test.desc new file mode 100644 index 00000000000..32ea7ec4a4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/aclwdrr015.c b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/aclwdrr015.c new file mode 100644 index 00000000000..1c54963778f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/aclwdrr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc new file mode 100644 index 00000000000..5afe4405c3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwdrr015.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_CAV11_ERROR/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_CAV11_ERROR/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_CAV11_ERROR/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..811c18fad24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwsrr000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/test.desc new file mode 100644 index 00000000000..1e32ca1b5b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/test.desc new file mode 100644 index 00000000000..106e08eabac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc new file mode 100644 index 00000000000..66a7eb6b50d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_ALL/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_ALL/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_ALL/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_ALL/test.desc new file mode 100644 index 00000000000..d20f7363c6b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPC/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPC/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPC/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPC/test.desc new file mode 100644 index 00000000000..4931284c752 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc new file mode 100644 index 00000000000..86b8fa95138 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/test.desc new file mode 100644 index 00000000000..18b30878edb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/test.desc new file mode 100644 index 00000000000..f9addb815e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc new file mode 100644 index 00000000000..28041c3733e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_SC_SAFE/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_SC_SAFE/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_SC_SAFE/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_SC_SAFE/test.desc new file mode 100644 index 00000000000..a82553e706e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwsrr000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_ALL/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_ALL/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_ALL/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_ALL/test.desc new file mode 100644 index 00000000000..c78a34368da --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPC/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPC/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPC/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPC/test.desc new file mode 100644 index 00000000000..ff16250b891 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/aclwsrr000.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/aclwsrr000.c new file mode 100644 index 00000000000..9014ba04465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/aclwsrr000.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 2 && __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc new file mode 100644 index 00000000000..b30793a943d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_CAV11_ERROR/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_CAV11_ERROR/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_CAV11_ERROR/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..ec731d85588 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwsrr001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_ALL/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_ALL/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_ALL/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_ALL/test.desc new file mode 100644 index 00000000000..c77804758d8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPC/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPC/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPC/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPC/test.desc new file mode 100644 index 00000000000..293059ec0ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc new file mode 100644 index 00000000000..7d21e4b44ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_ALL/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_ALL/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_ALL/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_ALL/test.desc new file mode 100644 index 00000000000..8e12ff4f828 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPC/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPC/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPC/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPC/test.desc new file mode 100644 index 00000000000..009dc71e6a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc new file mode 100644 index 00000000000..f1d35da46d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_ALL/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_ALL/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_ALL/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_ALL/test.desc new file mode 100644 index 00000000000..3d1ee3c10eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPC/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPC/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPC/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPC/test.desc new file mode 100644 index 00000000000..c9c74be4a90 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc new file mode 100644 index 00000000000..9fd22e51c4a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_SC_SAFE/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_SC_SAFE/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_SC_SAFE/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_SC_SAFE/test.desc new file mode 100644 index 00000000000..377f88c3b24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwsrr001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_ALL/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_ALL/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_ALL/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_ALL/test.desc new file mode 100644 index 00000000000..20f62cd5c20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPC/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPC/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPC/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPC/test.desc new file mode 100644 index 00000000000..e3f09f60146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/aclwsrr001.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/aclwsrr001.c new file mode 100644 index 00000000000..59e862b7a28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/aclwsrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc new file mode 100644 index 00000000000..6c4e7dd6e19 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_CAV11_SAFE/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_CAV11_SAFE/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_CAV11_SAFE/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..6cf8f374c9a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwsrr002.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/test.desc new file mode 100644 index 00000000000..f6ea5dceee4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr002.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/test.desc new file mode 100644 index 00000000000..c81e6325045 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr002.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_ALL/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_ALL/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_ALL/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_ALL/test.desc new file mode 100644 index 00000000000..97e680ba1c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr002.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPC/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPC/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPC/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPC/test.desc new file mode 100644 index 00000000000..208c254eff4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr002.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc new file mode 100644 index 00000000000..75d7ac0b061 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr002.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/test.desc new file mode 100644 index 00000000000..d54330a9ac7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr002.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/test.desc new file mode 100644 index 00000000000..7139f8e4b71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr002.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc new file mode 100644 index 00000000000..63ca14e7770 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr002.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_SC_SAFE/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_SC_SAFE/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_SC_SAFE/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_SC_SAFE/test.desc new file mode 100644 index 00000000000..d75d722a11f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +aclwsrr002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_ALL/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_ALL/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_ALL/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_ALL/test.desc new file mode 100644 index 00000000000..88d9ca51d06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPC/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPC/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPC/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPC/test.desc new file mode 100644 index 00000000000..8235c14d4cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/aclwsrr002.c b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/aclwsrr002.c new file mode 100644 index 00000000000..47719b99fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/aclwsrr002.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc new file mode 100644 index 00000000000..98c5b051c49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +aclwsrr002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..9841c3288ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_ALL/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_ALL/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_ALL/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_ALL/test.desc new file mode 100644 index 00000000000..c2d840c62fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPC/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPC/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPC/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPC/test.desc new file mode 100644 index 00000000000..b26363e18eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc new file mode 100644 index 00000000000..7dd02f2e247 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_ALL/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_ALL/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_ALL/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_ALL/test.desc new file mode 100644 index 00000000000..649f09feee6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPC/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPC/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPC/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPC/test.desc new file mode 100644 index 00000000000..59f9785e0f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc new file mode 100644 index 00000000000..6bad6311114 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_ALL/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_ALL/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_ALL/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_ALL/test.desc new file mode 100644 index 00000000000..baf2dc606ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPC/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPC/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPC/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPC/test.desc new file mode 100644 index 00000000000..1e1bddf3047 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc new file mode 100644 index 00000000000..eb48f09371a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/test.desc new file mode 100644 index 00000000000..15db2537146 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/test.desc new file mode 100644 index 00000000000..5072ed1def4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/test.desc new file mode 100644 index 00000000000..4cce432dea7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/bclwdww000.c b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/bclwdww000.c new file mode 100644 index 00000000000..2919c33539e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/bclwdww000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc new file mode 100644 index 00000000000..ae77c1550bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..055a9487cc3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_ALL/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_ALL/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_ALL/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_ALL/test.desc new file mode 100644 index 00000000000..d828b5933f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPC/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPC/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPC/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPC/test.desc new file mode 100644 index 00000000000..11a3955f440 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_ALL/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_ALL/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_ALL/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_ALL/test.desc new file mode 100644 index 00000000000..78db0fd8e0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww001.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPC/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPC/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPC/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPC/test.desc new file mode 100644 index 00000000000..f72133a9d1f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww001.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc new file mode 100644 index 00000000000..1fbfe2fd8cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww001.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_ALL/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_ALL/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_ALL/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_ALL/test.desc new file mode 100644 index 00000000000..33eca130e09 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww001.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPC/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPC/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPC/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPC/test.desc new file mode 100644 index 00000000000..1d1a3377ebd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww001.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc new file mode 100644 index 00000000000..879de116b3b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww001.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/test.desc new file mode 100644 index 00000000000..5440c96c8ce --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_ALL/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_ALL/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_ALL/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_ALL/test.desc new file mode 100644 index 00000000000..4c01799e8ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPC/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPC/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPC/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPC/test.desc new file mode 100644 index 00000000000..f6a2e802a15 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/bclwdww001.c b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/bclwdww001.c new file mode 100644 index 00000000000..545d47897fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/bclwdww001.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc new file mode 100644 index 00000000000..f67955cd1ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..16fcde6b611 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww002.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_ALL/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_ALL/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_ALL/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_ALL/test.desc new file mode 100644 index 00000000000..97bfbc8f52f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww002.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPC/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPC/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPC/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPC/test.desc new file mode 100644 index 00000000000..7fc268c9bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/test.desc new file mode 100644 index 00000000000..fa1a1bb94c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww002.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_ALL/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_ALL/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_ALL/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_ALL/test.desc new file mode 100644 index 00000000000..94b390fcfe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww002.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPC/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPC/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPC/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPC/test.desc new file mode 100644 index 00000000000..44045bc12e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww002.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc new file mode 100644 index 00000000000..cac07bffd34 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww002.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_ALL/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_ALL/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_ALL/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_ALL/test.desc new file mode 100644 index 00000000000..502a01584ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww002.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPC/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPC/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPC/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPC/test.desc new file mode 100644 index 00000000000..df58f2a5189 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww002.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc new file mode 100644 index 00000000000..623b418e7f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww002.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/test.desc new file mode 100644 index 00000000000..bc253c18b0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_ALL/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_ALL/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_ALL/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_ALL/test.desc new file mode 100644 index 00000000000..0f1ff28d4f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPC/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPC/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPC/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPC/test.desc new file mode 100644 index 00000000000..61398b35964 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/bclwdww002.c b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/bclwdww002.c new file mode 100644 index 00000000000..3938ac117d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/bclwdww002.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc new file mode 100644 index 00000000000..34d96cfa611 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..d525f7ce825 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww003.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_ALL/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_ALL/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_ALL/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_ALL/test.desc new file mode 100644 index 00000000000..2b8c1063c37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww003.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPC/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPC/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPC/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPC/test.desc new file mode 100644 index 00000000000..aff6f62ca1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww003.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_ALL/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_ALL/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_ALL/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_ALL/test.desc new file mode 100644 index 00000000000..412d7099325 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww003.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPC/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPC/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPC/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPC/test.desc new file mode 100644 index 00000000000..5783c69d2a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww003.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc new file mode 100644 index 00000000000..3f7e0b77f5c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww003.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_ALL/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_ALL/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_ALL/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_ALL/test.desc new file mode 100644 index 00000000000..a9a078f3d99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww003.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPC/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPC/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPC/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPC/test.desc new file mode 100644 index 00000000000..1be8a16c504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww003.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc new file mode 100644 index 00000000000..41f7b266b77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww003.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/test.desc new file mode 100644 index 00000000000..95140e40995 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_ALL/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_ALL/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_ALL/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_ALL/test.desc new file mode 100644 index 00000000000..4d7d9397025 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww003.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPC/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPC/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPC/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPC/test.desc new file mode 100644 index 00000000000..eff7adbce59 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww003.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/bclwdww003.c b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/bclwdww003.c new file mode 100644 index 00000000000..3adf34a702f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/bclwdww003.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc new file mode 100644 index 00000000000..4a0437083af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww003.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..9e0f22f8764 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww004.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_ALL/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_ALL/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_ALL/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_ALL/test.desc new file mode 100644 index 00000000000..69863d62a0f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww004.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPC/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPC/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPC/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPC/test.desc new file mode 100644 index 00000000000..5d2c3cf8a8c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww004.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/test.desc new file mode 100644 index 00000000000..fbbc6809d93 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww004.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_ALL/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_ALL/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_ALL/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_ALL/test.desc new file mode 100644 index 00000000000..b57458e9c43 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww004.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPC/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPC/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPC/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPC/test.desc new file mode 100644 index 00000000000..ee42fc3862c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww004.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc new file mode 100644 index 00000000000..b48d181314e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww004.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_ALL/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_ALL/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_ALL/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_ALL/test.desc new file mode 100644 index 00000000000..36cbf75776d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww004.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPC/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPC/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPC/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPC/test.desc new file mode 100644 index 00000000000..dc95ad1c711 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww004.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc new file mode 100644 index 00000000000..0a80c49b587 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww004.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/test.desc new file mode 100644 index 00000000000..ad132eae1bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww004.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_ALL/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_ALL/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_ALL/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_ALL/test.desc new file mode 100644 index 00000000000..97d8c2f764d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww004.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPC/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPC/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPC/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPC/test.desc new file mode 100644 index 00000000000..631b977bdbf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww004.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/bclwdww004.c b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/bclwdww004.c new file mode 100644 index 00000000000..8462bfbc067 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/bclwdww004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&y + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc new file mode 100644 index 00000000000..09153fbf116 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww004.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..4a16f7e742c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww005.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_ALL/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_ALL/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_ALL/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_ALL/test.desc new file mode 100644 index 00000000000..a287b7f948d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww005.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPC/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPC/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPC/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPC/test.desc new file mode 100644 index 00000000000..725c063e904 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww005.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_ALL/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_ALL/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_ALL/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_ALL/test.desc new file mode 100644 index 00000000000..31c7750a657 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww005.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPC/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPC/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPC/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPC/test.desc new file mode 100644 index 00000000000..a81acfea603 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww005.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc new file mode 100644 index 00000000000..0db04902ae3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww005.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_ALL/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_ALL/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_ALL/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_ALL/test.desc new file mode 100644 index 00000000000..bda97ecf893 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww005.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPC/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPC/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPC/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPC/test.desc new file mode 100644 index 00000000000..c128711591a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww005.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc new file mode 100644 index 00000000000..9086e4254fe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww005.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/test.desc new file mode 100644 index 00000000000..71c8bd0742d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww005.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_ALL/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_ALL/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_ALL/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_ALL/test.desc new file mode 100644 index 00000000000..d6537a2d247 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww005.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPC/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPC/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPC/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPC/test.desc new file mode 100644 index 00000000000..63231279c4a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww005.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/bclwdww005.c b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/bclwdww005.c new file mode 100644 index 00000000000..c1c66339095 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/bclwdww005.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc new file mode 100644 index 00000000000..0bb5c37508e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww005.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..0b76f386d46 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww006.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_ALL/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_ALL/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_ALL/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_ALL/test.desc new file mode 100644 index 00000000000..9604a30bd4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww006.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPC/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPC/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPC/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPC/test.desc new file mode 100644 index 00000000000..307667c8a27 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww006.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/test.desc new file mode 100644 index 00000000000..825a014ad33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww006.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_ALL/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_ALL/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_ALL/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_ALL/test.desc new file mode 100644 index 00000000000..544b11d0ce9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww006.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPC/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPC/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPC/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPC/test.desc new file mode 100644 index 00000000000..cfa5f29f257 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww006.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc new file mode 100644 index 00000000000..d7659808e2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww006.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_ALL/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_ALL/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_ALL/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_ALL/test.desc new file mode 100644 index 00000000000..61c4f6fd1c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww006.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPC/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPC/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPC/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPC/test.desc new file mode 100644 index 00000000000..74e6dd4a214 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww006.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc new file mode 100644 index 00000000000..5750521ee99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww006.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/test.desc new file mode 100644 index 00000000000..05d132d5f6f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww006.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_ALL/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_ALL/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_ALL/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_ALL/test.desc new file mode 100644 index 00000000000..1dea17b7f8d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww006.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPC/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPC/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPC/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPC/test.desc new file mode 100644 index 00000000000..21980474ebb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww006.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/bclwdww006.c b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/bclwdww006.c new file mode 100644 index 00000000000..9f8d142ca64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/bclwdww006.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc new file mode 100644 index 00000000000..5ef2770289b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww006.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..7a1f047d6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww007.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_ALL/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_ALL/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_ALL/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_ALL/test.desc new file mode 100644 index 00000000000..46ebd2ca829 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww007.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPC/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPC/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPC/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPC/test.desc new file mode 100644 index 00000000000..21480ad0811 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww007.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/test.desc new file mode 100644 index 00000000000..64eca38bfe7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +bclwdww007.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_ALL/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_ALL/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_ALL/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_ALL/test.desc new file mode 100644 index 00000000000..44d166eeff8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww007.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPC/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPC/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPC/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPC/test.desc new file mode 100644 index 00000000000..0a6e620dc87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww007.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc new file mode 100644 index 00000000000..2037f649e50 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww007.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_ALL/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_ALL/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_ALL/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_ALL/test.desc new file mode 100644 index 00000000000..f64f0f5cdce --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww007.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPC/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPC/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPC/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPC/test.desc new file mode 100644 index 00000000000..8fc5c330e3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww007.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc new file mode 100644 index 00000000000..ae881c6ac02 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww007.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/test.desc new file mode 100644 index 00000000000..b9c84131f13 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww007.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/test.desc new file mode 100644 index 00000000000..092959784e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww007.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/test.desc new file mode 100644 index 00000000000..f885731e971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww007.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/bclwdww007.c b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/bclwdww007.c new file mode 100644 index 00000000000..65c47383335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/bclwdww007.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc new file mode 100644 index 00000000000..a42d8c8bb91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww007.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..5edd047892a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww009.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_ALL/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_ALL/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_ALL/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_ALL/test.desc new file mode 100644 index 00000000000..d32d5eecff1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPC/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPC/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPC/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPC/test.desc new file mode 100644 index 00000000000..bb47fdbb369 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc new file mode 100644 index 00000000000..25dd783cf95 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_ALL/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_ALL/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_ALL/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_ALL/test.desc new file mode 100644 index 00000000000..0518ca0cccd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPC/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPC/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPC/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPC/test.desc new file mode 100644 index 00000000000..f8ba41fe998 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc new file mode 100644 index 00000000000..7891d5d70df --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_ALL/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_ALL/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_ALL/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_ALL/test.desc new file mode 100644 index 00000000000..3052941bf87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPC/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPC/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPC/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPC/test.desc new file mode 100644 index 00000000000..3f0cefeced2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc new file mode 100644 index 00000000000..889e4aa16e5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/test.desc new file mode 100644 index 00000000000..7ca8227ec71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwdww009.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_ALL/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_ALL/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_ALL/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_ALL/test.desc new file mode 100644 index 00000000000..65a9cbce3ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPC/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPC/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPC/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPC/test.desc new file mode 100644 index 00000000000..d25b581d5a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/bclwdww009.c b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/bclwdww009.c new file mode 100644 index 00000000000..ddd922c5d96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/bclwdww009.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc new file mode 100644 index 00000000000..e657410eb73 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwdww009.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b5ec9c85c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwsww000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_ALL/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_ALL/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_ALL/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_ALL/test.desc new file mode 100644 index 00000000000..36719ee427a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPC/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPC/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPC/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPC/test.desc new file mode 100644 index 00000000000..255c8f849ac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc new file mode 100644 index 00000000000..ab660d45a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_ALL/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_ALL/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_ALL/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_ALL/test.desc new file mode 100644 index 00000000000..b0969e89a16 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPC/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPC/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPC/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPC/test.desc new file mode 100644 index 00000000000..ff3b47900df --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc new file mode 100644 index 00000000000..5a51b5da05c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_ALL/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_ALL/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_ALL/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_ALL/test.desc new file mode 100644 index 00000000000..90ec0350153 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPC/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPC/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPC/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPC/test.desc new file mode 100644 index 00000000000..a88e1da9881 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc new file mode 100644 index 00000000000..a938cf2242b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/test.desc new file mode 100644 index 00000000000..492f9d72f65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +bclwsww000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_ALL/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_ALL/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_ALL/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_ALL/test.desc new file mode 100644 index 00000000000..91c212f523d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPC/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPC/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPC/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPC/test.desc new file mode 100644 index 00000000000..f5a3ada09b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/bclwsww000.c b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/bclwsww000.c new file mode 100644 index 00000000000..fa6be99d28d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/bclwsww000.c @@ -0,0 +1,90 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = 2; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 2 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc new file mode 100644 index 00000000000..c0b2610f6e1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +bclwsww000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..75a8a6b4537 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +iriw+addrs.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_ALL/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_ALL/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_ALL/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_ALL/test.desc new file mode 100644 index 00000000000..278b0f816a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +iriw+addrs.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPC/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPC/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPC/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPC/test.desc new file mode 100644 index 00000000000..0ce2b4bbbfe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+addrs.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc new file mode 100644 index 00000000000..c3345053a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+addrs.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_ALL/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_ALL/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_ALL/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_ALL/test.desc new file mode 100644 index 00000000000..220a6b9670e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+addrs.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPC/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPC/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPC/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPC/test.desc new file mode 100644 index 00000000000..4ebbd6728cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+addrs.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc new file mode 100644 index 00000000000..066a61c9765 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+addrs.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_ALL/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_ALL/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_ALL/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_ALL/test.desc new file mode 100644 index 00000000000..104fa9f7ff6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+addrs.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPC/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPC/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPC/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPC/test.desc new file mode 100644 index 00000000000..f41abb1f6c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+addrs.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc new file mode 100644 index 00000000000..95f3f20f33a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+addrs.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/test.desc new file mode 100644 index 00000000000..af736b154b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +iriw+addrs.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_ALL/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_ALL/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_ALL/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_ALL/test.desc new file mode 100644 index 00000000000..37261a4f58e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+addrs.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPC/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPC/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPC/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPC/test.desc new file mode 100644 index 00000000000..9abbce9c775 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+addrs.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/iriw+addrs.c b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/iriw+addrs.c new file mode 100644 index 00000000000..5bdf2ff44be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/iriw+addrs.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc new file mode 100644 index 00000000000..3bd854b6eae --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+addrs.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..ff08f70ba96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +iriw+lwsync+addr.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_ALL/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_ALL/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_ALL/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_ALL/test.desc new file mode 100644 index 00000000000..ab4fd35e353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPC/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPC/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPC/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPC/test.desc new file mode 100644 index 00000000000..37054d852bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc new file mode 100644 index 00000000000..cfcd9631fb5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_ALL/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_ALL/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_ALL/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_ALL/test.desc new file mode 100644 index 00000000000..c1db7bc1a3b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPC/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPC/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPC/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPC/test.desc new file mode 100644 index 00000000000..7a8b1a15cda --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc new file mode 100644 index 00000000000..90324e6e7b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_ALL/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_ALL/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_ALL/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_ALL/test.desc new file mode 100644 index 00000000000..22377f2a3de --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPC/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPC/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPC/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPC/test.desc new file mode 100644 index 00000000000..22a9793391c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc new file mode 100644 index 00000000000..9fdd88b3afb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/test.desc new file mode 100644 index 00000000000..6c069ecc0c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +iriw+lwsync+addr.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_ALL/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_ALL/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_ALL/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_ALL/test.desc new file mode 100644 index 00000000000..bd9de60471f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPC/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPC/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPC/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPC/test.desc new file mode 100644 index 00000000000..94d1b2b8ce3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/iriw+lwsync+addr.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/iriw+lwsync+addr.c new file mode 100644 index 00000000000..4a81d136a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/iriw+lwsync+addr.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = *(&y + __unbuffered_p3_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc new file mode 100644 index 00000000000..72c0d17b154 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsync+addr.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..7855a389455 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +iriw+lwsyncs.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_ALL/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_ALL/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_ALL/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_ALL/test.desc new file mode 100644 index 00000000000..97dc6706489 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsyncs.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPC/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPC/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPC/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPC/test.desc new file mode 100644 index 00000000000..8cbbdb63e04 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsyncs.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_ALL/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_ALL/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_ALL/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_ALL/test.desc new file mode 100644 index 00000000000..ccf509858ce --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsyncs.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPC/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPC/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPC/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPC/test.desc new file mode 100644 index 00000000000..dd70415fd15 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsyncs.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc new file mode 100644 index 00000000000..631673dbcdb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsyncs.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_ALL/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_ALL/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_ALL/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_ALL/test.desc new file mode 100644 index 00000000000..21a697ca72c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsyncs.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPC/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPC/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPC/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPC/test.desc new file mode 100644 index 00000000000..62cc99dacab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsyncs.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc new file mode 100644 index 00000000000..8b073f09f31 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsyncs.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/test.desc new file mode 100644 index 00000000000..36d61ee3230 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +iriw+lwsyncs.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_ALL/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_ALL/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_ALL/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_ALL/test.desc new file mode 100644 index 00000000000..2fee2d04a21 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsyncs.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPC/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPC/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPC/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPC/test.desc new file mode 100644 index 00000000000..a5d89a36e7e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsyncs.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/iriw+lwsyncs.c b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/iriw+lwsyncs.c new file mode 100644 index 00000000000..ef08d276875 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/iriw+lwsyncs.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + lwfence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc new file mode 100644 index 00000000000..e8b4cee7018 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +iriw+lwsyncs.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..58a7972e930 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_ALL/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_ALL/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_ALL/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_ALL/test.desc new file mode 100644 index 00000000000..9203ff23827 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPC/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPC/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPC/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPC/test.desc new file mode 100644 index 00000000000..cccb3ba717d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_ALL/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_ALL/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_ALL/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_ALL/test.desc new file mode 100644 index 00000000000..fac3beb5c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr000.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPC/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPC/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPC/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPC/test.desc new file mode 100644 index 00000000000..7287697713b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr000.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc new file mode 100644 index 00000000000..f9f6b1660c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr000.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_ALL/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_ALL/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_ALL/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_ALL/test.desc new file mode 100644 index 00000000000..6480c546880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPC/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPC/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPC/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPC/test.desc new file mode 100644 index 00000000000..ce349b7a087 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc new file mode 100644 index 00000000000..4f8ee7299ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/test.desc new file mode 100644 index 00000000000..6a2408181cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_ALL/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_ALL/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_ALL/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_ALL/test.desc new file mode 100644 index 00000000000..617bd8eadca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr000.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPC/lwdwr000.c b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPC/lwdwr000.c new file mode 100644 index 00000000000..feb185e9a7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPC/lwdwr000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPC/test.desc new file mode 100644 index 00000000000..613e1b49a23 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr000.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..0656f76b841 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_ALL/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_ALL/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_ALL/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_ALL/test.desc new file mode 100644 index 00000000000..cc1435273be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPC/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPC/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPC/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPC/test.desc new file mode 100644 index 00000000000..cb89b9f9574 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_ALL/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_ALL/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_ALL/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_ALL/test.desc new file mode 100644 index 00000000000..12412de052c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr001.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPC/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPC/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPC/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPC/test.desc new file mode 100644 index 00000000000..ae34c0f3a58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr001.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc new file mode 100644 index 00000000000..ea15e19e71a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr001.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_ALL/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_ALL/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_ALL/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_ALL/test.desc new file mode 100644 index 00000000000..260f1a91f95 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPC/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPC/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPC/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPC/test.desc new file mode 100644 index 00000000000..a2e355f61ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc new file mode 100644 index 00000000000..45dc9f02d61 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/test.desc new file mode 100644 index 00000000000..e802034633e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_ALL/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_ALL/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_ALL/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_ALL/test.desc new file mode 100644 index 00000000000..7e7aacee2f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr001.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPC/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPC/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPC/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPC/test.desc new file mode 100644 index 00000000000..7359c78eaf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr001.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/lwdwr001.c b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/lwdwr001.c new file mode 100644 index 00000000000..b2c643d8af8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/lwdwr001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc new file mode 100644 index 00000000000..0cb3ec5f594 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr001.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1c7639cb016 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr002.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_ALL/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_ALL/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_ALL/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_ALL/test.desc new file mode 100644 index 00000000000..977ec4a270d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPC/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPC/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPC/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPC/test.desc new file mode 100644 index 00000000000..8fd70c1b107 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc new file mode 100644 index 00000000000..4d7536f151d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_ALL/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_ALL/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_ALL/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_ALL/test.desc new file mode 100644 index 00000000000..b7549029bb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPC/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPC/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPC/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPC/test.desc new file mode 100644 index 00000000000..3ea26ceab2e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc new file mode 100644 index 00000000000..3f5e68e9ba9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_ALL/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_ALL/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_ALL/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_ALL/test.desc new file mode 100644 index 00000000000..c41d9220c77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPC/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPC/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPC/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPC/test.desc new file mode 100644 index 00000000000..687eaf872a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc new file mode 100644 index 00000000000..dd046a94564 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/test.desc new file mode 100644 index 00000000000..89ae453bfe9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_ALL/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_ALL/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_ALL/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_ALL/test.desc new file mode 100644 index 00000000000..40907da8be4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPC/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPC/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPC/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPC/test.desc new file mode 100644 index 00000000000..8d16e8da064 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/lwdwr002.c b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/lwdwr002.c new file mode 100644 index 00000000000..7c89d50d665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/lwdwr002.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc new file mode 100644 index 00000000000..597f19ec275 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr002.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..12107d464cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr003.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_ALL/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_ALL/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_ALL/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_ALL/test.desc new file mode 100644 index 00000000000..df226fa4e91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPC/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPC/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPC/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPC/test.desc new file mode 100644 index 00000000000..ac5d1556bdf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc new file mode 100644 index 00000000000..f927b83a674 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_ALL/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_ALL/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_ALL/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_ALL/test.desc new file mode 100644 index 00000000000..cc63ec5dc76 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPC/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPC/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPC/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPC/test.desc new file mode 100644 index 00000000000..2edf278c85f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc new file mode 100644 index 00000000000..0e99c1ba770 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_ALL/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_ALL/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_ALL/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_ALL/test.desc new file mode 100644 index 00000000000..cb2a4956664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPC/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPC/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPC/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPC/test.desc new file mode 100644 index 00000000000..52de83edfac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc new file mode 100644 index 00000000000..05083413eab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/test.desc new file mode 100644 index 00000000000..090f761229e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_ALL/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_ALL/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_ALL/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_ALL/test.desc new file mode 100644 index 00000000000..7609f3e8f06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPC/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPC/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPC/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPC/test.desc new file mode 100644 index 00000000000..11fe51c0717 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/lwdwr003.c b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/lwdwr003.c new file mode 100644 index 00000000000..31c23a6957b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/lwdwr003.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc new file mode 100644 index 00000000000..f893ae5c131 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr003.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..c6c3b7febd9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr004.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_ALL/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_ALL/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_ALL/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_ALL/test.desc new file mode 100644 index 00000000000..e7ea0e9aef2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr004.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPC/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPC/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPC/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPC/test.desc new file mode 100644 index 00000000000..4003e9b3075 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr004.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_ALL/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_ALL/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_ALL/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_ALL/test.desc new file mode 100644 index 00000000000..ded8fd02af9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr004.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPC/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPC/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPC/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPC/test.desc new file mode 100644 index 00000000000..90a87c51d22 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr004.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc new file mode 100644 index 00000000000..81acbbbdf64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr004.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_ALL/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_ALL/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_ALL/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_ALL/test.desc new file mode 100644 index 00000000000..b8e17252b36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr004.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPC/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPC/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPC/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPC/test.desc new file mode 100644 index 00000000000..07f78a36ead --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr004.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc new file mode 100644 index 00000000000..4bd9c0f860c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr004.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/test.desc new file mode 100644 index 00000000000..fb0893d6d44 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr004.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_ALL/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_ALL/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_ALL/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_ALL/test.desc new file mode 100644 index 00000000000..97649afda67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr004.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPC/lwdwr004.c b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPC/lwdwr004.c new file mode 100644 index 00000000000..5f9defe387d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPC/lwdwr004.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPC/test.desc new file mode 100644 index 00000000000..bad0c1fa70a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr004.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..154261008e6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr005.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_ALL/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_ALL/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_ALL/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_ALL/test.desc new file mode 100644 index 00000000000..e421c52400e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPC/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPC/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPC/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPC/test.desc new file mode 100644 index 00000000000..b94fe3727c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc new file mode 100644 index 00000000000..3280ec39342 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_ALL/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_ALL/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_ALL/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_ALL/test.desc new file mode 100644 index 00000000000..fbd770f18c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPC/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPC/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPC/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPC/test.desc new file mode 100644 index 00000000000..a68ec15e648 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc new file mode 100644 index 00000000000..eaa07252482 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_ALL/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_ALL/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_ALL/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_ALL/test.desc new file mode 100644 index 00000000000..32d58d9d556 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPC/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPC/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPC/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPC/test.desc new file mode 100644 index 00000000000..53775070682 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc new file mode 100644 index 00000000000..f9f86d5147d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/test.desc new file mode 100644 index 00000000000..d1dc8266b76 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr005.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_ALL/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_ALL/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_ALL/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_ALL/test.desc new file mode 100644 index 00000000000..2fe447c9fbb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPC/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPC/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPC/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPC/test.desc new file mode 100644 index 00000000000..ee63f00c40e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/lwdwr005.c b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/lwdwr005.c new file mode 100644 index 00000000000..9c55ee4cd49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/lwdwr005.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc new file mode 100644 index 00000000000..50f64ea4978 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr005.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1c268ac12b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr006.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_ALL/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_ALL/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_ALL/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_ALL/test.desc new file mode 100644 index 00000000000..d93283a0ab0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr006.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPC/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPC/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPC/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPC/test.desc new file mode 100644 index 00000000000..4023da9ddc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr006.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_ALL/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_ALL/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_ALL/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_ALL/test.desc new file mode 100644 index 00000000000..a33dfbfef2e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr006.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPC/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPC/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPC/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPC/test.desc new file mode 100644 index 00000000000..4c1297c1089 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr006.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc new file mode 100644 index 00000000000..c44f07e9b15 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr006.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_ALL/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_ALL/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_ALL/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_ALL/test.desc new file mode 100644 index 00000000000..96fb8597f64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr006.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPC/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPC/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPC/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPC/test.desc new file mode 100644 index 00000000000..4f112246a5d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr006.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc new file mode 100644 index 00000000000..6c6b650a627 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr006.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/test.desc new file mode 100644 index 00000000000..406b453c997 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr006.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_ALL/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_ALL/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_ALL/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_ALL/test.desc new file mode 100644 index 00000000000..83a7ac7579e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr006.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPC/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPC/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPC/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPC/test.desc new file mode 100644 index 00000000000..5bc4a70080a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr006.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/lwdwr006.c b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/lwdwr006.c new file mode 100644 index 00000000000..5ca2cce6880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/lwdwr006.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc new file mode 100644 index 00000000000..0499ffbae3e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr006.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..582d76e266b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr007.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_ALL/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_ALL/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_ALL/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_ALL/test.desc new file mode 100644 index 00000000000..31ecdde9008 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr007.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPC/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPC/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPC/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPC/test.desc new file mode 100644 index 00000000000..4b964a36080 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr007.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_ALL/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_ALL/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_ALL/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_ALL/test.desc new file mode 100644 index 00000000000..34d18610b2f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr007.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPC/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPC/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPC/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPC/test.desc new file mode 100644 index 00000000000..3176c488949 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr007.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc new file mode 100644 index 00000000000..d3c0c98d3f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr007.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_ALL/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_ALL/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_ALL/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_ALL/test.desc new file mode 100644 index 00000000000..f2a79f88b27 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr007.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPC/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPC/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPC/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPC/test.desc new file mode 100644 index 00000000000..8e382fb8dd9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr007.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc new file mode 100644 index 00000000000..7911553c824 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr007.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/test.desc new file mode 100644 index 00000000000..d07a6098ce4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr007.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_ALL/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_ALL/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_ALL/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_ALL/test.desc new file mode 100644 index 00000000000..c595ba16e19 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr007.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPC/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPC/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPC/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPC/test.desc new file mode 100644 index 00000000000..851e82ead01 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr007.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/lwdwr007.c b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/lwdwr007.c new file mode 100644 index 00000000000..fc748d065b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/lwdwr007.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc new file mode 100644 index 00000000000..0d00bf2ae0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr007.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..f6c87ba823b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr008.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_ALL/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_ALL/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_ALL/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_ALL/test.desc new file mode 100644 index 00000000000..aad320c3796 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPC/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPC/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPC/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPC/test.desc new file mode 100644 index 00000000000..0c667acb9ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc new file mode 100644 index 00000000000..295b58d6adf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_ALL/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_ALL/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_ALL/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_ALL/test.desc new file mode 100644 index 00000000000..04d2d032817 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPC/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPC/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPC/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPC/test.desc new file mode 100644 index 00000000000..cee5a768540 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc new file mode 100644 index 00000000000..4c95886dec1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_ALL/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_ALL/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_ALL/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_ALL/test.desc new file mode 100644 index 00000000000..914ecb1148e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPC/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPC/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPC/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPC/test.desc new file mode 100644 index 00000000000..ee95cb0e95a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc new file mode 100644 index 00000000000..858ec0fe665 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/test.desc new file mode 100644 index 00000000000..ba9640346f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr008.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_ALL/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_ALL/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_ALL/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_ALL/test.desc new file mode 100644 index 00000000000..dc802e3f4c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPC/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPC/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPC/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPC/test.desc new file mode 100644 index 00000000000..e4c662b3327 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/lwdwr008.c b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/lwdwr008.c new file mode 100644 index 00000000000..813553e8c78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/lwdwr008.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc new file mode 100644 index 00000000000..31894b91859 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr008.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..20f8811d5af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr009.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_ALL/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_ALL/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_ALL/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_ALL/test.desc new file mode 100644 index 00000000000..17710ee2f6a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPC/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPC/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPC/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPC/test.desc new file mode 100644 index 00000000000..1b2b016e97b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc new file mode 100644 index 00000000000..440bb7bc5c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_ALL/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_ALL/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_ALL/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_ALL/test.desc new file mode 100644 index 00000000000..ecc8eb7a295 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPC/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPC/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPC/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPC/test.desc new file mode 100644 index 00000000000..496a07e001a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc new file mode 100644 index 00000000000..791c32425c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_ALL/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_ALL/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_ALL/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_ALL/test.desc new file mode 100644 index 00000000000..815915abcc5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPC/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPC/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPC/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPC/test.desc new file mode 100644 index 00000000000..33c753bc5f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc new file mode 100644 index 00000000000..75e0a71f4c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/test.desc new file mode 100644 index 00000000000..1de31a7e55e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr009.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_ALL/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_ALL/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_ALL/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_ALL/test.desc new file mode 100644 index 00000000000..e8d672f7b12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPC/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPC/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPC/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPC/test.desc new file mode 100644 index 00000000000..543e443f6e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/lwdwr009.c b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/lwdwr009.c new file mode 100644 index 00000000000..f10c7775521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/lwdwr009.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc new file mode 100644 index 00000000000..a5e2b0fd170 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr009.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..83a10ad2d5c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr010.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_ALL/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_ALL/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_ALL/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_ALL/test.desc new file mode 100644 index 00000000000..e8739c8b0a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr010.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPC/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPC/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPC/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPC/test.desc new file mode 100644 index 00000000000..c110bf396cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr010.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_ALL/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_ALL/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_ALL/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_ALL/test.desc new file mode 100644 index 00000000000..60bccac953d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr010.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPC/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPC/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPC/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPC/test.desc new file mode 100644 index 00000000000..a00587b6f54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr010.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc new file mode 100644 index 00000000000..f08def06d3e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr010.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_ALL/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_ALL/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_ALL/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_ALL/test.desc new file mode 100644 index 00000000000..8b4ec13b818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr010.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPC/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPC/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPC/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPC/test.desc new file mode 100644 index 00000000000..16fd68fe249 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr010.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc new file mode 100644 index 00000000000..6d87ec54e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr010.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/test.desc new file mode 100644 index 00000000000..5510cec668c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr010.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_ALL/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_ALL/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_ALL/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_ALL/test.desc new file mode 100644 index 00000000000..13b9b22ebd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr010.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPC/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPC/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPC/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPC/test.desc new file mode 100644 index 00000000000..d2fa535b23d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr010.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/lwdwr010.c b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/lwdwr010.c new file mode 100644 index 00000000000..14ec2b42e8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/lwdwr010.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc new file mode 100644 index 00000000000..de27aed9b90 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr010.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e4eefc1c3d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr011.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_ALL/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_ALL/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_ALL/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_ALL/test.desc new file mode 100644 index 00000000000..302d5970356 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPC/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPC/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPC/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPC/test.desc new file mode 100644 index 00000000000..c370ae98e16 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc new file mode 100644 index 00000000000..ac28a7640aa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_ALL/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_ALL/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_ALL/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_ALL/test.desc new file mode 100644 index 00000000000..04237792f67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPC/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPC/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPC/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPC/test.desc new file mode 100644 index 00000000000..bf9c9cbffb4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc new file mode 100644 index 00000000000..565d4edd7a0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_ALL/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_ALL/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_ALL/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_ALL/test.desc new file mode 100644 index 00000000000..166a57c6f29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPC/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPC/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPC/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPC/test.desc new file mode 100644 index 00000000000..05a7c61e4c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc new file mode 100644 index 00000000000..8d64f4f78db --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/test.desc new file mode 100644 index 00000000000..b801132a56e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr011.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_ALL/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_ALL/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_ALL/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_ALL/test.desc new file mode 100644 index 00000000000..6d44550e490 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPC/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPC/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPC/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPC/test.desc new file mode 100644 index 00000000000..bacaf0346c9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/lwdwr011.c b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/lwdwr011.c new file mode 100644 index 00000000000..505ec7ae6d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/lwdwr011.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc new file mode 100644 index 00000000000..02dcf54285e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr011.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..96326149b65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr012.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_ALL/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_ALL/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_ALL/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_ALL/test.desc new file mode 100644 index 00000000000..b23ac0168ae --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPC/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPC/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPC/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPC/test.desc new file mode 100644 index 00000000000..f6590dd73d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc new file mode 100644 index 00000000000..d9ae7997fd1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_ALL/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_ALL/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_ALL/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_ALL/test.desc new file mode 100644 index 00000000000..d2f4b2f68d8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPC/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPC/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPC/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPC/test.desc new file mode 100644 index 00000000000..715980f7622 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc new file mode 100644 index 00000000000..2db315f9a92 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_ALL/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_ALL/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_ALL/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_ALL/test.desc new file mode 100644 index 00000000000..17955296ea4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPC/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPC/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPC/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPC/test.desc new file mode 100644 index 00000000000..4ab44d2728d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc new file mode 100644 index 00000000000..5ee4027aefa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/test.desc new file mode 100644 index 00000000000..798be8dc284 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr012.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_ALL/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_ALL/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_ALL/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_ALL/test.desc new file mode 100644 index 00000000000..3c1598c106f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPC/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPC/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPC/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPC/test.desc new file mode 100644 index 00000000000..e155ead7870 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/lwdwr012.c b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/lwdwr012.c new file mode 100644 index 00000000000..3eafc37f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/lwdwr012.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc new file mode 100644 index 00000000000..1669510d0ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr012.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..8f880015659 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr013.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_ALL/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_ALL/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_ALL/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_ALL/test.desc new file mode 100644 index 00000000000..728f671fe7b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPC/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPC/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPC/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPC/test.desc new file mode 100644 index 00000000000..f3b1de1d44d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc new file mode 100644 index 00000000000..1addb425140 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_ALL/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_ALL/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_ALL/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_ALL/test.desc new file mode 100644 index 00000000000..2aeffae6dc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPC/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPC/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPC/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPC/test.desc new file mode 100644 index 00000000000..1200c3b6fba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc new file mode 100644 index 00000000000..3eb8e36ca54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_ALL/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_ALL/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_ALL/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_ALL/test.desc new file mode 100644 index 00000000000..a5ba094e14f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPC/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPC/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPC/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPC/test.desc new file mode 100644 index 00000000000..05efbf10a24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc new file mode 100644 index 00000000000..1357efeeac9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/test.desc new file mode 100644 index 00000000000..22fe6c7f5c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr013.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_ALL/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_ALL/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_ALL/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_ALL/test.desc new file mode 100644 index 00000000000..cef8988556a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPC/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPC/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPC/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPC/test.desc new file mode 100644 index 00000000000..5931123144a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/lwdwr013.c b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/lwdwr013.c new file mode 100644 index 00000000000..5b0bd417d05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/lwdwr013.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc new file mode 100644 index 00000000000..2fe56785378 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr013.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..c032ba3bf2d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr014.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_ALL/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_ALL/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_ALL/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_ALL/test.desc new file mode 100644 index 00000000000..977a5210416 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPC/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPC/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPC/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPC/test.desc new file mode 100644 index 00000000000..8487ef27ab2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc new file mode 100644 index 00000000000..fd8b974f6c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_ALL/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_ALL/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_ALL/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_ALL/test.desc new file mode 100644 index 00000000000..c720393aaac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPC/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPC/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPC/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPC/test.desc new file mode 100644 index 00000000000..14225d66d3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc new file mode 100644 index 00000000000..92e6130c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_ALL/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_ALL/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_ALL/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_ALL/test.desc new file mode 100644 index 00000000000..6eb771b4022 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPC/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPC/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPC/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPC/test.desc new file mode 100644 index 00000000000..1e16547709a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc new file mode 100644 index 00000000000..a54ab0912e5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/test.desc new file mode 100644 index 00000000000..dc61594c857 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr014.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_ALL/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_ALL/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_ALL/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_ALL/test.desc new file mode 100644 index 00000000000..32e71e18c59 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPC/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPC/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPC/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPC/test.desc new file mode 100644 index 00000000000..007e7601f68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/lwdwr014.c b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/lwdwr014.c new file mode 100644 index 00000000000..af868f09a47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/lwdwr014.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc new file mode 100644 index 00000000000..0d7126741ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr014.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..fbb4d3e884a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr015.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_ALL/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_ALL/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_ALL/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_ALL/test.desc new file mode 100644 index 00000000000..ebce9a66706 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPC/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPC/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPC/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPC/test.desc new file mode 100644 index 00000000000..dfb2bbd7ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc new file mode 100644 index 00000000000..313424b2efa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_ALL/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_ALL/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_ALL/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_ALL/test.desc new file mode 100644 index 00000000000..f1fc212073d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPC/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPC/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPC/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPC/test.desc new file mode 100644 index 00000000000..a077969dfea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc new file mode 100644 index 00000000000..b12b73b7390 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_ALL/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_ALL/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_ALL/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_ALL/test.desc new file mode 100644 index 00000000000..84d0fd4999d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPC/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPC/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPC/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPC/test.desc new file mode 100644 index 00000000000..53d3a78a033 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc new file mode 100644 index 00000000000..af430ee04be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/test.desc new file mode 100644 index 00000000000..919e1a9ab96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr015.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_ALL/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_ALL/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_ALL/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_ALL/test.desc new file mode 100644 index 00000000000..e3e1ba944aa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPC/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPC/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPC/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPC/test.desc new file mode 100644 index 00000000000..1eb869a4df1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/lwdwr015.c b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/lwdwr015.c new file mode 100644 index 00000000000..6627c34f244 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/lwdwr015.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc new file mode 100644 index 00000000000..f158a13d0f5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr015.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..50bbc22026a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr016.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_ALL/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_ALL/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_ALL/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_ALL/test.desc new file mode 100644 index 00000000000..15316990288 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr016.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPC/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPC/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPC/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPC/test.desc new file mode 100644 index 00000000000..e0db9b41570 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr016.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_ALL/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_ALL/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_ALL/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_ALL/test.desc new file mode 100644 index 00000000000..92dcaaa301e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr016.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPC/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPC/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPC/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPC/test.desc new file mode 100644 index 00000000000..f5728e55f4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr016.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc new file mode 100644 index 00000000000..ffb7dac88cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr016.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_ALL/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_ALL/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_ALL/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_ALL/test.desc new file mode 100644 index 00000000000..b9e02fccb2b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr016.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPC/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPC/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPC/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPC/test.desc new file mode 100644 index 00000000000..ae744d2ed4a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr016.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc new file mode 100644 index 00000000000..6f4f6cdec23 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr016.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/test.desc new file mode 100644 index 00000000000..afd93a03957 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr016.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_ALL/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_ALL/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_ALL/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_ALL/test.desc new file mode 100644 index 00000000000..8a16306817a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr016.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPC/lwdwr016.c b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPC/lwdwr016.c new file mode 100644 index 00000000000..da4adef2dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPC/lwdwr016.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPC/test.desc new file mode 100644 index 00000000000..c1cac39b5af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr016.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..57dbfd67bcf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr017.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_ALL/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_ALL/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_ALL/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_ALL/test.desc new file mode 100644 index 00000000000..0c589e846b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr017.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPC/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPC/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPC/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPC/test.desc new file mode 100644 index 00000000000..5a0abb39f88 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr017.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_ALL/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_ALL/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_ALL/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_ALL/test.desc new file mode 100644 index 00000000000..ecec2adcf6a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr017.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPC/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPC/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPC/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPC/test.desc new file mode 100644 index 00000000000..02769515748 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr017.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc new file mode 100644 index 00000000000..ea43971acfe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr017.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_ALL/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_ALL/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_ALL/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_ALL/test.desc new file mode 100644 index 00000000000..3e4bc3a355b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr017.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPC/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPC/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPC/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPC/test.desc new file mode 100644 index 00000000000..0a071addd65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr017.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc new file mode 100644 index 00000000000..7bfc6912b12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr017.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/test.desc new file mode 100644 index 00000000000..1775edd7b23 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr017.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_ALL/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_ALL/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_ALL/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_ALL/test.desc new file mode 100644 index 00000000000..74ddfd06e3e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr017.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPC/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPC/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPC/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPC/test.desc new file mode 100644 index 00000000000..1724d9c4f0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr017.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/lwdwr017.c b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/lwdwr017.c new file mode 100644 index 00000000000..0448944b183 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/lwdwr017.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r3 == 0 && __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc new file mode 100644 index 00000000000..c539e987d30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr017.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..9d05b473714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr018.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_ALL/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_ALL/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_ALL/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_ALL/test.desc new file mode 100644 index 00000000000..f5d8e63269f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPC/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPC/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPC/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPC/test.desc new file mode 100644 index 00000000000..4f4bdffba13 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc new file mode 100644 index 00000000000..e8fea7717b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_ALL/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_ALL/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_ALL/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_ALL/test.desc new file mode 100644 index 00000000000..db80bf9838e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPC/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPC/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPC/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPC/test.desc new file mode 100644 index 00000000000..7b99939c25c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc new file mode 100644 index 00000000000..e908ddf8a7a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_ALL/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_ALL/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_ALL/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_ALL/test.desc new file mode 100644 index 00000000000..2c21815b741 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPC/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPC/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPC/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPC/test.desc new file mode 100644 index 00000000000..2ca59994e47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc new file mode 100644 index 00000000000..1b12831d210 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/test.desc new file mode 100644 index 00000000000..1890dd344eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr018.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_ALL/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_ALL/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_ALL/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_ALL/test.desc new file mode 100644 index 00000000000..e1b6a72b9cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPC/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPC/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPC/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPC/test.desc new file mode 100644 index 00000000000..23f3e5a8bd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/lwdwr018.c b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/lwdwr018.c new file mode 100644 index 00000000000..f44c24ad82e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/lwdwr018.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc new file mode 100644 index 00000000000..23dcb828f46 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr018.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b9b4326aeee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr019.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_ALL/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_ALL/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_ALL/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_ALL/test.desc new file mode 100644 index 00000000000..22411e211b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr019.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPC/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPC/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPC/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPC/test.desc new file mode 100644 index 00000000000..9c938fbad07 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr019.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_ALL/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_ALL/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_ALL/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_ALL/test.desc new file mode 100644 index 00000000000..dad0a2c2a7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr019.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPC/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPC/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPC/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPC/test.desc new file mode 100644 index 00000000000..0d2832564d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr019.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc new file mode 100644 index 00000000000..f797a658d30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr019.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_ALL/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_ALL/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_ALL/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_ALL/test.desc new file mode 100644 index 00000000000..0d5cde47e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr019.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPC/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPC/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPC/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPC/test.desc new file mode 100644 index 00000000000..d5abe21cdae --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr019.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc new file mode 100644 index 00000000000..457249b24cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr019.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/test.desc new file mode 100644 index 00000000000..6e5212f7fa4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr019.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_ALL/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_ALL/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_ALL/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_ALL/test.desc new file mode 100644 index 00000000000..58650f51664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr019.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPC/lwdwr019.c b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPC/lwdwr019.c new file mode 100644 index 00000000000..c682b33506e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPC/lwdwr019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPC/test.desc new file mode 100644 index 00000000000..98ce7f5c373 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr019.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b60f1b80bad --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr020.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_ALL/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_ALL/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_ALL/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_ALL/test.desc new file mode 100644 index 00000000000..4bf6cc55842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPC/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPC/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPC/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPC/test.desc new file mode 100644 index 00000000000..9f853ad2212 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc new file mode 100644 index 00000000000..570b6fd0f3d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_ALL/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_ALL/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_ALL/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_ALL/test.desc new file mode 100644 index 00000000000..6bbabd55b33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPC/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPC/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPC/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPC/test.desc new file mode 100644 index 00000000000..e06a4d22f1c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc new file mode 100644 index 00000000000..2224201a408 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_ALL/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_ALL/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_ALL/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_ALL/test.desc new file mode 100644 index 00000000000..4cbb7053f05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPC/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPC/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPC/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPC/test.desc new file mode 100644 index 00000000000..04d9323d961 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc new file mode 100644 index 00000000000..69829b95412 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/test.desc new file mode 100644 index 00000000000..11e6b32aaa3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr020.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_ALL/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_ALL/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_ALL/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_ALL/test.desc new file mode 100644 index 00000000000..01117bc6952 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPC/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPC/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPC/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPC/test.desc new file mode 100644 index 00000000000..a21e20246e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/lwdwr020.c b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/lwdwr020.c new file mode 100644 index 00000000000..d50b6391585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/lwdwr020.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc new file mode 100644 index 00000000000..680fc350818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr020.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..a2c5c4e0bf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr021.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_ALL/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_ALL/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_ALL/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_ALL/test.desc new file mode 100644 index 00000000000..4fd23985e0a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPC/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPC/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPC/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPC/test.desc new file mode 100644 index 00000000000..0d11fae7c5d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc new file mode 100644 index 00000000000..6657e948094 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_ALL/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_ALL/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_ALL/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_ALL/test.desc new file mode 100644 index 00000000000..40bcc4945b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPC/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPC/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPC/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPC/test.desc new file mode 100644 index 00000000000..2ad067fd6ae --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc new file mode 100644 index 00000000000..ce164235960 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_ALL/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_ALL/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_ALL/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_ALL/test.desc new file mode 100644 index 00000000000..b29deaf1c8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPC/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPC/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPC/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPC/test.desc new file mode 100644 index 00000000000..1cf6daef9ca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc new file mode 100644 index 00000000000..dbe2f9cca01 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/test.desc new file mode 100644 index 00000000000..8b4dc8a8cbd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwdwr021.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_ALL/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_ALL/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_ALL/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_ALL/test.desc new file mode 100644 index 00000000000..f6135aa954a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPC/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPC/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPC/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPC/test.desc new file mode 100644 index 00000000000..46921c80236 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/lwdwr021.c b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/lwdwr021.c new file mode 100644 index 00000000000..a584dcc86e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/lwdwr021.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc new file mode 100644 index 00000000000..f4a058aa7f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwdwr021.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..cf14cddbe90 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwswr000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_ALL/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_ALL/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_ALL/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_ALL/test.desc new file mode 100644 index 00000000000..f91c9bb011a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPC/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPC/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPC/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPC/test.desc new file mode 100644 index 00000000000..58307c941c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc new file mode 100644 index 00000000000..ead195ec9b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_ALL/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_ALL/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_ALL/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_ALL/test.desc new file mode 100644 index 00000000000..96b6adc3709 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr000.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPC/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPC/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPC/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPC/test.desc new file mode 100644 index 00000000000..bd1c4288f34 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr000.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/test.desc new file mode 100644 index 00000000000..36c8c423512 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr000.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_ALL/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_ALL/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_ALL/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_ALL/test.desc new file mode 100644 index 00000000000..0a8b778ad66 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPC/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPC/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPC/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPC/test.desc new file mode 100644 index 00000000000..a5d5b02bae6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/test.desc new file mode 100644 index 00000000000..ab952225798 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/test.desc new file mode 100644 index 00000000000..60a6e5de00c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwswr000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_ALL/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_ALL/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_ALL/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_ALL/test.desc new file mode 100644 index 00000000000..7b4b419ce0d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr000.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPC/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPC/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPC/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPC/test.desc new file mode 100644 index 00000000000..49d13078cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr000.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/lwswr000.c b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/lwswr000.c new file mode 100644 index 00000000000..cbb15acf714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/lwswr000.c @@ -0,0 +1,96 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int __unbuffered_p3_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + lwfence(); + __unbuffered_p3_r3 = y; + __unbuffered_p3_r4 = __unbuffered_p3_r3 ^ __unbuffered_p3_r3; + __unbuffered_p3_r5 = *(&x + __unbuffered_p3_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r3 == 1 && __unbuffered_p3_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/test.desc new file mode 100644 index 00000000000..4e25ec178f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr000.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..49b7640c0bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwswr001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_ALL/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_ALL/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_ALL/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_ALL/test.desc new file mode 100644 index 00000000000..e19bf78800b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPC/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPC/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPC/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPC/test.desc new file mode 100644 index 00000000000..b3938957725 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc new file mode 100644 index 00000000000..b12eb36665c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_ALL/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_ALL/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_ALL/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_ALL/test.desc new file mode 100644 index 00000000000..68b53d4f07e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr001.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPC/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPC/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPC/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPC/test.desc new file mode 100644 index 00000000000..bea9ca60b7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr001.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc new file mode 100644 index 00000000000..d2670c15792 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr001.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_ALL/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_ALL/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_ALL/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_ALL/test.desc new file mode 100644 index 00000000000..79990199ef8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPC/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPC/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPC/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPC/test.desc new file mode 100644 index 00000000000..d0eb091a54a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc new file mode 100644 index 00000000000..25b83de0d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/test.desc new file mode 100644 index 00000000000..a39dc1c3dbc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwswr001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_ALL/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_ALL/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_ALL/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_ALL/test.desc new file mode 100644 index 00000000000..4f88673886b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +lwswr001.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPC/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPC/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPC/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPC/test.desc new file mode 100644 index 00000000000..c1a49d7c20e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr001.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/lwswr001.c b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/lwswr001.c new file mode 100644 index 00000000000..3c80650c0b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/lwswr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = y; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r5 == 0 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc new file mode 100644 index 00000000000..b3af053843c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr001.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..c55093b0b12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwswr002.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_ALL/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_ALL/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_ALL/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_ALL/test.desc new file mode 100644 index 00000000000..c0d7802daa3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPC/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPC/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPC/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPC/test.desc new file mode 100644 index 00000000000..df6241af803 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc new file mode 100644 index 00000000000..d9ca2a9ae08 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_ALL/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_ALL/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_ALL/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_ALL/test.desc new file mode 100644 index 00000000000..01ef2281c30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPC/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPC/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPC/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPC/test.desc new file mode 100644 index 00000000000..f0422f6f5e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc new file mode 100644 index 00000000000..d9403b41c5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_ALL/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_ALL/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_ALL/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_ALL/test.desc new file mode 100644 index 00000000000..41ee75450eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPC/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPC/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPC/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPC/test.desc new file mode 100644 index 00000000000..0bf1b9a6823 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc new file mode 100644 index 00000000000..15be802cacb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/test.desc new file mode 100644 index 00000000000..b949b7e5f9d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwswr002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_ALL/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_ALL/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_ALL/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_ALL/test.desc new file mode 100644 index 00000000000..fe75b7c938d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPC/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPC/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPC/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPC/test.desc new file mode 100644 index 00000000000..e27033af4bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/lwswr002.c b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/lwswr002.c new file mode 100644 index 00000000000..8fbce92a0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/lwswr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc new file mode 100644 index 00000000000..7b18f6458d7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr002.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..15da0d4639d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwswr003.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_ALL/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_ALL/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_ALL/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_ALL/test.desc new file mode 100644 index 00000000000..6bae3eef855 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPC/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPC/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPC/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPC/test.desc new file mode 100644 index 00000000000..2ea76773b32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc new file mode 100644 index 00000000000..cce94398ed8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_ALL/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_ALL/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_ALL/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_ALL/test.desc new file mode 100644 index 00000000000..d5424d4971f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPC/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPC/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPC/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPC/test.desc new file mode 100644 index 00000000000..e1a85531b79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc new file mode 100644 index 00000000000..f0f5ee200f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_ALL/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_ALL/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_ALL/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_ALL/test.desc new file mode 100644 index 00000000000..e2524e0d7df --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPC/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPC/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPC/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPC/test.desc new file mode 100644 index 00000000000..a7ab841f798 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc new file mode 100644 index 00000000000..d8bd88d59f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/test.desc new file mode 100644 index 00000000000..465d15bf6ac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +lwswr003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_ALL/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_ALL/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_ALL/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_ALL/test.desc new file mode 100644 index 00000000000..f4622eb11f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPC/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPC/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPC/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPC/test.desc new file mode 100644 index 00000000000..7c64e945d91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/lwswr003.c b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/lwswr003.c new file mode 100644 index 00000000000..504a017b14c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/lwswr003.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&z + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + z = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = z; + __unbuffered_p2_r4 = __unbuffered_p2_r3 ^ __unbuffered_p2_r3; + __unbuffered_p2_r5 = *(&x + __unbuffered_p2_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r5 == 0 && __unbuffered_p1_r5 == 0 && + __unbuffered_p2_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc new file mode 100644 index 00000000000..8ef55d18ee3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +lwswr003.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/mix000.c b/regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/mix000.c new file mode 100644 index 00000000000..761c44e999e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/mix000.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&z + __unbuffered_p1_r4) = __unbuffered_p1_r5; + __unbuffered_p1_r7 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..321fa1812a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_PSO_ALL/mix000.c b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_ALL/mix000.c new file mode 100644 index 00000000000..761c44e999e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_ALL/mix000.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&z + __unbuffered_p1_r4) = __unbuffered_p1_r5; + __unbuffered_p1_r7 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_ALL/test.desc new file mode 100644 index 00000000000..51e443970d6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPC/mix000.c b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPC/mix000.c new file mode 100644 index 00000000000..761c44e999e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPC/mix000.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&z + __unbuffered_p1_r4) = __unbuffered_p1_r5; + __unbuffered_p1_r7 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPC/test.desc new file mode 100644 index 00000000000..4b6b70971c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/mix000.c b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/mix000.c new file mode 100644 index 00000000000..761c44e999e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/mix000.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&z + __unbuffered_p1_r4) = __unbuffered_p1_r5; + __unbuffered_p1_r7 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc new file mode 100644 index 00000000000..133f637b340 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_RMO_ALL/mix000.c b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_ALL/mix000.c new file mode 100644 index 00000000000..761c44e999e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_ALL/mix000.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&z + __unbuffered_p1_r4) = __unbuffered_p1_r5; + __unbuffered_p1_r7 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_ALL/test.desc new file mode 100644 index 00000000000..0e9afb1d812 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPC/mix000.c b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPC/mix000.c new file mode 100644 index 00000000000..761c44e999e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPC/mix000.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&z + __unbuffered_p1_r4) = __unbuffered_p1_r5; + __unbuffered_p1_r7 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPC/test.desc new file mode 100644 index 00000000000..008c387bd6c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix000.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/mix000.c b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/mix000.c new file mode 100644 index 00000000000..761c44e999e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/mix000.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&z + __unbuffered_p1_r4) = __unbuffered_p1_r5; + __unbuffered_p1_r7 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc new file mode 100644 index 00000000000..1c02752ba49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/mix000.c b/regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/mix000.c new file mode 100644 index 00000000000..761c44e999e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/mix000.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&z + __unbuffered_p1_r4) = __unbuffered_p1_r5; + __unbuffered_p1_r7 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/test.desc new file mode 100644 index 00000000000..df0b17d49b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_TSO_ALL/mix000.c b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_ALL/mix000.c new file mode 100644 index 00000000000..761c44e999e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_ALL/mix000.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&z + __unbuffered_p1_r4) = __unbuffered_p1_r5; + __unbuffered_p1_r7 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_ALL/test.desc new file mode 100644 index 00000000000..bd964cf1794 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPC/mix000.c b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPC/mix000.c new file mode 100644 index 00000000000..761c44e999e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPC/mix000.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&z + __unbuffered_p1_r4) = __unbuffered_p1_r5; + __unbuffered_p1_r7 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPC/test.desc new file mode 100644 index 00000000000..6b44e943465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/mix000.c b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/mix000.c new file mode 100644 index 00000000000..761c44e999e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/mix000.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&z + __unbuffered_p1_r4) = __unbuffered_p1_r5; + __unbuffered_p1_r7 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc new file mode 100644 index 00000000000..585c130e582 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..d02b34974c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrr000.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_ALL/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_ALL/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_ALL/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_ALL/test.desc new file mode 100644 index 00000000000..7353a68174e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPC/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPC/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPC/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPC/test.desc new file mode 100644 index 00000000000..cff7dc4614e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc new file mode 100644 index 00000000000..e4c169b000c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/test.desc new file mode 100644 index 00000000000..8e184f4fb63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/test.desc new file mode 100644 index 00000000000..e8d06e226d5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc new file mode 100644 index 00000000000..4ead19f6f58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_ALL/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_ALL/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_ALL/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_ALL/test.desc new file mode 100644 index 00000000000..8f90c33fb6d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPC/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPC/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPC/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPC/test.desc new file mode 100644 index 00000000000..515ab227a01 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc new file mode 100644 index 00000000000..33f33543a71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/test.desc new file mode 100644 index 00000000000..2484293573a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrr000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/test.desc new file mode 100644 index 00000000000..301d98e9da4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/test.desc new file mode 100644 index 00000000000..bcf6966957a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/podrr000.c b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/podrr000.c new file mode 100644 index 00000000000..1bf667bab67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/podrr000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc new file mode 100644 index 00000000000..1b71a7a57af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..70d2288b8b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrr001.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_ALL/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_ALL/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_ALL/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_ALL/test.desc new file mode 100644 index 00000000000..8ac6348d740 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPC/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPC/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPC/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPC/test.desc new file mode 100644 index 00000000000..65ca2952745 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_ALL/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_ALL/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_ALL/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_ALL/test.desc new file mode 100644 index 00000000000..5022b305181 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr001.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPC/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPC/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPC/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPC/test.desc new file mode 100644 index 00000000000..ab5aaa5f8c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr001.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc new file mode 100644 index 00000000000..058f38f7449 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr001.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_ALL/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_ALL/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_ALL/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_ALL/test.desc new file mode 100644 index 00000000000..6002d0ead94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPC/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPC/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPC/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPC/test.desc new file mode 100644 index 00000000000..05bc396c549 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc new file mode 100644 index 00000000000..b50f9128d11 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/test.desc new file mode 100644 index 00000000000..6d1da8d8808 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrr001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_ALL/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_ALL/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_ALL/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_ALL/test.desc new file mode 100644 index 00000000000..83ca532438a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPC/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPC/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPC/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPC/test.desc new file mode 100644 index 00000000000..b2f3e6cd0ca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/podrr001.c b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/podrr001.c new file mode 100644 index 00000000000..6a52bc51973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/podrr001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc new file mode 100644 index 00000000000..51697e00387 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..073909f17c5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrr002.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_ALL/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_ALL/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_ALL/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_ALL/test.desc new file mode 100644 index 00000000000..bc370c53dbe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +podrr002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPC/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPC/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPC/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPC/test.desc new file mode 100644 index 00000000000..d2de3e27019 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc new file mode 100644 index 00000000000..da0fb75aadf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr002.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/test.desc new file mode 100644 index 00000000000..6d21a2342d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr002.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/test.desc new file mode 100644 index 00000000000..b8e4d736892 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr002.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc new file mode 100644 index 00000000000..b4e1a7277e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr002.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_ALL/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_ALL/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_ALL/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_ALL/test.desc new file mode 100644 index 00000000000..e85073fd497 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr002.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPC/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPC/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPC/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPC/test.desc new file mode 100644 index 00000000000..7554e8b0d88 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr002.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc new file mode 100644 index 00000000000..cb51aac97a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr002.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/test.desc new file mode 100644 index 00000000000..0691e786163 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrr002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/test.desc new file mode 100644 index 00000000000..bd8f174074f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/test.desc new file mode 100644 index 00000000000..b95ada46c2d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/podrr002.c b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/podrr002.c new file mode 100644 index 00000000000..d8a3de11e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/podrr002.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc new file mode 100644 index 00000000000..c513e0b7c7b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..7dbecb5d6ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrr003.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_ALL/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_ALL/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_ALL/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_ALL/test.desc new file mode 100644 index 00000000000..c0ac57db9b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPC/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPC/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPC/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPC/test.desc new file mode 100644 index 00000000000..2bdeeacbd77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc new file mode 100644 index 00000000000..f3b77431e18 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_ALL/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_ALL/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_ALL/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_ALL/test.desc new file mode 100644 index 00000000000..a83d24cc34e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPC/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPC/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPC/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPC/test.desc new file mode 100644 index 00000000000..ea8b5d65c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc new file mode 100644 index 00000000000..289700a86af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_ALL/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_ALL/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_ALL/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_ALL/test.desc new file mode 100644 index 00000000000..0ab6beee4cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPC/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPC/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPC/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPC/test.desc new file mode 100644 index 00000000000..e1646eda22b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc new file mode 100644 index 00000000000..4b4ef3b2739 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/test.desc new file mode 100644 index 00000000000..96943b43f49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrr003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_ALL/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_ALL/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_ALL/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_ALL/test.desc new file mode 100644 index 00000000000..b480b7998a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPC/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPC/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPC/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPC/test.desc new file mode 100644 index 00000000000..aa417acb737 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/podrr003.c b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/podrr003.c new file mode 100644 index 00000000000..28d9bbfdecc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/podrr003.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc new file mode 100644 index 00000000000..dad1701e00e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrr003.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..7f5ddee6e8d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrw000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_ALL/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_ALL/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_ALL/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_ALL/test.desc new file mode 100644 index 00000000000..495ad8c4a55 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPC/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPC/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPC/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPC/test.desc new file mode 100644 index 00000000000..f8b63904f51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc new file mode 100644 index 00000000000..edc6f33f1c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/test.desc new file mode 100644 index 00000000000..6fe61cb1dc2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/test.desc new file mode 100644 index 00000000000..c0bb0a0a704 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc new file mode 100644 index 00000000000..d1067e25b43 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_ALL/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_ALL/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_ALL/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_ALL/test.desc new file mode 100644 index 00000000000..55afae73cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPC/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPC/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPC/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPC/test.desc new file mode 100644 index 00000000000..d3dbbdadc40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc new file mode 100644 index 00000000000..489f050f377 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/test.desc new file mode 100644 index 00000000000..b5da1ac4722 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrw000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/test.desc new file mode 100644 index 00000000000..1efbec64211 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/test.desc new file mode 100644 index 00000000000..e69ab6702c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/podrw000.c b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/podrw000.c new file mode 100644 index 00000000000..7d808e02bb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/podrw000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc new file mode 100644 index 00000000000..02720a957a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1af1a428251 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrw001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_ALL/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_ALL/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_ALL/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_ALL/test.desc new file mode 100644 index 00000000000..758e18a5f70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPC/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPC/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPC/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPC/test.desc new file mode 100644 index 00000000000..17cf076fd3b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_ALL/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_ALL/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_ALL/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_ALL/test.desc new file mode 100644 index 00000000000..074c684157c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw001.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPC/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPC/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPC/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPC/test.desc new file mode 100644 index 00000000000..40cab4c1188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw001.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc new file mode 100644 index 00000000000..f26c5dafe14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw001.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_ALL/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_ALL/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_ALL/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_ALL/test.desc new file mode 100644 index 00000000000..088f1a760a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPC/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPC/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPC/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPC/test.desc new file mode 100644 index 00000000000..abc71d4fb98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc new file mode 100644 index 00000000000..419e8504ef2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/test.desc new file mode 100644 index 00000000000..3f7a795e513 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrw001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_ALL/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_ALL/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_ALL/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_ALL/test.desc new file mode 100644 index 00000000000..e3d1ab2472a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPC/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPC/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPC/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPC/test.desc new file mode 100644 index 00000000000..cb1be1883a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/podrw001.c b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/podrw001.c new file mode 100644 index 00000000000..54faa50728f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/podrw001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc new file mode 100644 index 00000000000..b674d646036 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrw001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..3acd4eb9dfe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_ALL/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_ALL/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_ALL/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_ALL/test.desc new file mode 100644 index 00000000000..707186e20c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPC/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPC/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPC/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPC/test.desc new file mode 100644 index 00000000000..d34d38b9b12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc new file mode 100644 index 00000000000..de24c580c4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_ALL/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_ALL/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_ALL/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_ALL/test.desc new file mode 100644 index 00000000000..c4058c628b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPC/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPC/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPC/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPC/test.desc new file mode 100644 index 00000000000..558d3d90df8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc new file mode 100644 index 00000000000..61801f5d596 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_ALL/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_ALL/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_ALL/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_ALL/test.desc new file mode 100644 index 00000000000..b8a0427f62c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPC/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPC/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPC/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPC/test.desc new file mode 100644 index 00000000000..7c03a62c3ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc new file mode 100644 index 00000000000..1e5eee16881 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/test.desc new file mode 100644 index 00000000000..fbd2facbd12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_ALL/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_ALL/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_ALL/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_ALL/test.desc new file mode 100644 index 00000000000..ff24ef574ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPC/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPC/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPC/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPC/test.desc new file mode 100644 index 00000000000..e2972a4de26 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/podrwposwr000.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/podrwposwr000.c new file mode 100644 index 00000000000..0ca7bda0643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/podrwposwr000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = 1; + z = __unbuffered_p1_r6; + __unbuffered_p1_r8 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc new file mode 100644 index 00000000000..fbe296ce269 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..cb8bfb64117 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_ALL/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_ALL/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_ALL/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_ALL/test.desc new file mode 100644 index 00000000000..b81fda69127 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +podrwposwr001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPC/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPC/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPC/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPC/test.desc new file mode 100644 index 00000000000..3d0eee8faa5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_ALL/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_ALL/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_ALL/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_ALL/test.desc new file mode 100644 index 00000000000..069d86badcf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr001.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPC/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPC/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPC/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPC/test.desc new file mode 100644 index 00000000000..df94336e437 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr001.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc new file mode 100644 index 00000000000..120cfcb3b92 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr001.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_ALL/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_ALL/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_ALL/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_ALL/test.desc new file mode 100644 index 00000000000..7751b6fe405 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +podrwposwr001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPC/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPC/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPC/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPC/test.desc new file mode 100644 index 00000000000..bc5d6b7a694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc new file mode 100644 index 00000000000..24a15578766 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/test.desc new file mode 100644 index 00000000000..39979f7b8eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_ALL/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_ALL/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_ALL/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_ALL/test.desc new file mode 100644 index 00000000000..2892d464886 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPC/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPC/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPC/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPC/test.desc new file mode 100644 index 00000000000..82c9dc06364 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/podrwposwr001.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/podrwposwr001.c new file mode 100644 index 00000000000..c9a23e8ee53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/podrwposwr001.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc new file mode 100644 index 00000000000..907b1001526 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..17a5a22fe2f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr002.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_ALL/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_ALL/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_ALL/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_ALL/test.desc new file mode 100644 index 00000000000..f56cc5d0e5c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +podrwposwr002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPC/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPC/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPC/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPC/test.desc new file mode 100644 index 00000000000..159771df1dc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_ALL/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_ALL/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_ALL/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_ALL/test.desc new file mode 100644 index 00000000000..ac68fb0bc06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr002.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPC/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPC/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPC/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPC/test.desc new file mode 100644 index 00000000000..71ac87144aa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr002.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc new file mode 100644 index 00000000000..e946bbaaebe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr002.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_ALL/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_ALL/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_ALL/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_ALL/test.desc new file mode 100644 index 00000000000..8585038f365 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +podrwposwr002.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPC/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPC/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPC/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPC/test.desc new file mode 100644 index 00000000000..446cdd9c3ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr002.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc new file mode 100644 index 00000000000..32f17bd5248 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr002.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/test.desc new file mode 100644 index 00000000000..e8cd2c5bf36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_ALL/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_ALL/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_ALL/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_ALL/test.desc new file mode 100644 index 00000000000..868c22f9d7b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPC/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPC/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPC/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPC/test.desc new file mode 100644 index 00000000000..51228b4562b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/podrwposwr002.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/podrwposwr002.c new file mode 100644 index 00000000000..42d904da188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/podrwposwr002.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && x == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc new file mode 100644 index 00000000000..9d89fa84ffa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..7e36c32b269 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr003.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_ALL/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_ALL/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_ALL/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_ALL/test.desc new file mode 100644 index 00000000000..0558b747e87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +podrwposwr003.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPC/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPC/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPC/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPC/test.desc new file mode 100644 index 00000000000..9a546211cd5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr003.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_ALL/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_ALL/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_ALL/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_ALL/test.desc new file mode 100644 index 00000000000..d0d3f6d80b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr003.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPC/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPC/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPC/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPC/test.desc new file mode 100644 index 00000000000..c4950609fb8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr003.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc new file mode 100644 index 00000000000..cc38afa2740 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr003.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_ALL/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_ALL/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_ALL/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_ALL/test.desc new file mode 100644 index 00000000000..eaf6deed575 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +podrwposwr003.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPC/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPC/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPC/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPC/test.desc new file mode 100644 index 00000000000..bbd2cfc090a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr003.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc new file mode 100644 index 00000000000..f151c16567f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr003.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/test.desc new file mode 100644 index 00000000000..7f0902a9184 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_ALL/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_ALL/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_ALL/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_ALL/test.desc new file mode 100644 index 00000000000..22deb0dec66 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr003.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPC/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPC/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPC/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPC/test.desc new file mode 100644 index 00000000000..adce6365f26 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr003.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/podrwposwr003.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/podrwposwr003.c new file mode 100644 index 00000000000..419c0236208 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/podrwposwr003.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + a = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + __unbuffered_p2_r6 = 1; + a = __unbuffered_p2_r6; + __unbuffered_p2_r8 = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(a == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r8 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc new file mode 100644 index 00000000000..c8e9c65c832 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr003.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..dfac4204d5d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr004.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_ALL/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_ALL/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_ALL/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_ALL/test.desc new file mode 100644 index 00000000000..cfbf3b34831 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPC/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPC/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPC/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPC/test.desc new file mode 100644 index 00000000000..4290e95d89e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc new file mode 100644 index 00000000000..f590b5c06df --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_ALL/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_ALL/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_ALL/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_ALL/test.desc new file mode 100644 index 00000000000..c835b19e148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPC/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPC/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPC/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPC/test.desc new file mode 100644 index 00000000000..69cafadc05e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc new file mode 100644 index 00000000000..7630fc37c67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_ALL/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_ALL/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_ALL/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_ALL/test.desc new file mode 100644 index 00000000000..9975ae3881c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPC/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPC/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPC/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPC/test.desc new file mode 100644 index 00000000000..774c62497f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc new file mode 100644 index 00000000000..46973c89340 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/test.desc new file mode 100644 index 00000000000..b57c7f6ac92 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr004.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_ALL/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_ALL/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_ALL/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_ALL/test.desc new file mode 100644 index 00000000000..4b989518f10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPC/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPC/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPC/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPC/test.desc new file mode 100644 index 00000000000..aa4a73c218a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/podrwposwr004.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/podrwposwr004.c new file mode 100644 index 00000000000..196c2514aef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/podrwposwr004.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + __unbuffered_p1_r5 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc new file mode 100644 index 00000000000..f6c9c611c0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr004.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..6f472dffdac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr005.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_ALL/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_ALL/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_ALL/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_ALL/test.desc new file mode 100644 index 00000000000..866e186e4b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPC/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPC/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPC/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPC/test.desc new file mode 100644 index 00000000000..8b94d0bccc5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc new file mode 100644 index 00000000000..86130489fc8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_ALL/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_ALL/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_ALL/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_ALL/test.desc new file mode 100644 index 00000000000..19624dc743c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPC/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPC/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPC/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPC/test.desc new file mode 100644 index 00000000000..db949933bc5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc new file mode 100644 index 00000000000..d7cc3b6b686 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_ALL/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_ALL/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_ALL/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_ALL/test.desc new file mode 100644 index 00000000000..e2c5f661a0f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPC/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPC/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPC/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPC/test.desc new file mode 100644 index 00000000000..e30e1317fb4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc new file mode 100644 index 00000000000..fe53631c2b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/test.desc new file mode 100644 index 00000000000..625222b3ab8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr005.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_ALL/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_ALL/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_ALL/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_ALL/test.desc new file mode 100644 index 00000000000..62bf9f2ad48 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPC/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPC/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPC/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPC/test.desc new file mode 100644 index 00000000000..e12e09d5a16 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/podrwposwr005.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/podrwposwr005.c new file mode 100644 index 00000000000..6a9cdaa3cac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/podrwposwr005.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = *(&x + __unbuffered_p1_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc new file mode 100644 index 00000000000..266b639ae5c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr005.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..9f961bae31f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr006.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_ALL/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_ALL/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_ALL/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_ALL/test.desc new file mode 100644 index 00000000000..d2588c9f03e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +podrwposwr006.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPC/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPC/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPC/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPC/test.desc new file mode 100644 index 00000000000..f797e16df14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr006.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_ALL/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_ALL/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_ALL/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_ALL/test.desc new file mode 100644 index 00000000000..90d141dd194 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr006.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPC/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPC/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPC/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPC/test.desc new file mode 100644 index 00000000000..8767f2880ca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr006.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc new file mode 100644 index 00000000000..eb282b486b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr006.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_ALL/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_ALL/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_ALL/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_ALL/test.desc new file mode 100644 index 00000000000..df020635b0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr006.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPC/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPC/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPC/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPC/test.desc new file mode 100644 index 00000000000..32a3f2e2bd4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr006.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc new file mode 100644 index 00000000000..0f8d0af3c2e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr006.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/test.desc new file mode 100644 index 00000000000..36d9ed70eb8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr006.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_ALL/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_ALL/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_ALL/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_ALL/test.desc new file mode 100644 index 00000000000..1883d1be6c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr006.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPC/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPC/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPC/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPC/test.desc new file mode 100644 index 00000000000..ba7dedbc76d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr006.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/podrwposwr006.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/podrwposwr006.c new file mode 100644 index 00000000000..8de979609b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/podrwposwr006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc new file mode 100644 index 00000000000..a28a14cde4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr006.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..d42d93b2c8f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr007.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_ALL/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_ALL/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_ALL/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_ALL/test.desc new file mode 100644 index 00000000000..043070f6e64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr007.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPC/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPC/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPC/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPC/test.desc new file mode 100644 index 00000000000..34babbbfc5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr007.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_ALL/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_ALL/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_ALL/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_ALL/test.desc new file mode 100644 index 00000000000..2c4f99be1bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr007.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPC/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPC/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPC/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPC/test.desc new file mode 100644 index 00000000000..d4b49ee4cf7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr007.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc new file mode 100644 index 00000000000..3ffaa2cfcfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr007.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_ALL/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_ALL/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_ALL/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_ALL/test.desc new file mode 100644 index 00000000000..53cb5c53516 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr007.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPC/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPC/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPC/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPC/test.desc new file mode 100644 index 00000000000..0da0271054f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr007.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc new file mode 100644 index 00000000000..045d3baa82a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr007.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/test.desc new file mode 100644 index 00000000000..4a3c3088c92 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr007.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_ALL/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_ALL/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_ALL/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_ALL/test.desc new file mode 100644 index 00000000000..d9caf574a51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr007.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPC/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPC/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPC/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPC/test.desc new file mode 100644 index 00000000000..43352fb2808 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr007.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/podrwposwr007.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/podrwposwr007.c new file mode 100644 index 00000000000..8a5f07c7a3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/podrwposwr007.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc new file mode 100644 index 00000000000..27ca65ed289 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr007.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..8946d0d258e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr008.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_ALL/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_ALL/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_ALL/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_ALL/test.desc new file mode 100644 index 00000000000..2d00302f9be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr008.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPC/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPC/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPC/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPC/test.desc new file mode 100644 index 00000000000..b131a25605a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr008.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_ALL/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_ALL/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_ALL/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_ALL/test.desc new file mode 100644 index 00000000000..a344d4ffd2d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr008.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPC/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPC/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPC/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPC/test.desc new file mode 100644 index 00000000000..3c76cae1247 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr008.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc new file mode 100644 index 00000000000..eb632057fd8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr008.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_ALL/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_ALL/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_ALL/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_ALL/test.desc new file mode 100644 index 00000000000..3875820102c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr008.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPC/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPC/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPC/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPC/test.desc new file mode 100644 index 00000000000..d8c07b579bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr008.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc new file mode 100644 index 00000000000..55d02f60b8a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr008.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/test.desc new file mode 100644 index 00000000000..6392d70d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr008.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_ALL/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_ALL/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_ALL/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_ALL/test.desc new file mode 100644 index 00000000000..fc63b26de75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr008.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPC/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPC/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPC/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPC/test.desc new file mode 100644 index 00000000000..e3a506c2e30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr008.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/podrwposwr008.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/podrwposwr008.c new file mode 100644 index 00000000000..1e083a56240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/podrwposwr008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc new file mode 100644 index 00000000000..8ba963a5e76 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr008.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..80e7857dc38 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr009.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_ALL/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_ALL/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_ALL/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_ALL/test.desc new file mode 100644 index 00000000000..9d3e7a9cf2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPC/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPC/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPC/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPC/test.desc new file mode 100644 index 00000000000..956b4b91b39 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc new file mode 100644 index 00000000000..89ef0120660 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/test.desc new file mode 100644 index 00000000000..f7418c9a453 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/test.desc new file mode 100644 index 00000000000..74d484d36b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc new file mode 100644 index 00000000000..c59e4ff1dfe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_ALL/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_ALL/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_ALL/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_ALL/test.desc new file mode 100644 index 00000000000..955cb59ea09 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPC/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPC/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPC/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPC/test.desc new file mode 100644 index 00000000000..85014ef4e62 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc new file mode 100644 index 00000000000..49774b96250 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/test.desc new file mode 100644 index 00000000000..37bfe8893a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr009.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/test.desc new file mode 100644 index 00000000000..422f3d0dac9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/test.desc new file mode 100644 index 00000000000..30ab3c88ecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/podrwposwr009.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/podrwposwr009.c new file mode 100644 index 00000000000..a1ece5d600f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/podrwposwr009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + __unbuffered_p1_r5 = z; + __unbuffered_p1_r6 = __unbuffered_p1_r5 ^ __unbuffered_p1_r5; + __unbuffered_p1_r7 = 1; + *(&x + __unbuffered_p1_r6) = __unbuffered_p1_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc new file mode 100644 index 00000000000..d1e9cd81995 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr009.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..9f8a8339340 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr010.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_ALL/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_ALL/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_ALL/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_ALL/test.desc new file mode 100644 index 00000000000..2a7daa9c16e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr010.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPC/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPC/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPC/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPC/test.desc new file mode 100644 index 00000000000..15961b425ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr010.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_ALL/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_ALL/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_ALL/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_ALL/test.desc new file mode 100644 index 00000000000..fc28862a25d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr010.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPC/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPC/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPC/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPC/test.desc new file mode 100644 index 00000000000..c464fa71218 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr010.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc new file mode 100644 index 00000000000..1bc2d1cc9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr010.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_ALL/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_ALL/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_ALL/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_ALL/test.desc new file mode 100644 index 00000000000..ce9a217d0e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr010.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPC/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPC/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPC/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPC/test.desc new file mode 100644 index 00000000000..17094562bd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr010.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc new file mode 100644 index 00000000000..ba992fd4217 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr010.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/test.desc new file mode 100644 index 00000000000..7be1f663155 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr010.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_ALL/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_ALL/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_ALL/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_ALL/test.desc new file mode 100644 index 00000000000..1a6bc1fd293 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr010.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPC/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPC/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPC/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPC/test.desc new file mode 100644 index 00000000000..3e4b768f0f9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr010.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/podrwposwr010.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/podrwposwr010.c new file mode 100644 index 00000000000..401eea0c50f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/podrwposwr010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc new file mode 100644 index 00000000000..d8de708d5c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr010.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..7897e78faf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr011.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_ALL/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_ALL/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_ALL/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_ALL/test.desc new file mode 100644 index 00000000000..b24f366aad7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr011.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPC/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPC/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPC/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPC/test.desc new file mode 100644 index 00000000000..168e278faab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr011.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_ALL/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_ALL/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_ALL/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_ALL/test.desc new file mode 100644 index 00000000000..a3ad9aa6ea7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr011.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPC/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPC/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPC/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPC/test.desc new file mode 100644 index 00000000000..222cb0b3288 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr011.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc new file mode 100644 index 00000000000..17b3bc847f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr011.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_ALL/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_ALL/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_ALL/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_ALL/test.desc new file mode 100644 index 00000000000..a572a6370df --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr011.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPC/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPC/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPC/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPC/test.desc new file mode 100644 index 00000000000..be268985025 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr011.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc new file mode 100644 index 00000000000..6c60a4cf2a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr011.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/test.desc new file mode 100644 index 00000000000..4a2c0978ff8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr011.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_ALL/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_ALL/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_ALL/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_ALL/test.desc new file mode 100644 index 00000000000..585477f73d5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr011.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPC/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPC/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPC/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPC/test.desc new file mode 100644 index 00000000000..64539ab0c66 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr011.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/podrwposwr011.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/podrwposwr011.c new file mode 100644 index 00000000000..2c78b38dfcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/podrwposwr011.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p2_r1 == 1 && __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc new file mode 100644 index 00000000000..19fd2e58afe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr011.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b466983ddb8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr012.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_ALL/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_ALL/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_ALL/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_ALL/test.desc new file mode 100644 index 00000000000..5a430fc0d99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr012.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPC/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPC/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPC/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPC/test.desc new file mode 100644 index 00000000000..80bd414bd26 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr012.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/test.desc new file mode 100644 index 00000000000..3dbebca26e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr012.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/test.desc new file mode 100644 index 00000000000..e5640ede1ac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr012.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc new file mode 100644 index 00000000000..292a972812a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr012.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_ALL/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_ALL/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_ALL/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_ALL/test.desc new file mode 100644 index 00000000000..e193d49a154 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr012.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPC/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPC/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPC/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPC/test.desc new file mode 100644 index 00000000000..5a78a436f3e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr012.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc new file mode 100644 index 00000000000..fbb7d37fa53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr012.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/test.desc new file mode 100644 index 00000000000..5ecc4796c86 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr012.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/test.desc new file mode 100644 index 00000000000..2fdaddc614f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr012.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/test.desc new file mode 100644 index 00000000000..b06bf4b3749 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr012.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/podrwposwr012.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/podrwposwr012.c new file mode 100644 index 00000000000..3fedd6602e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/podrwposwr012.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc new file mode 100644 index 00000000000..d53a72079e1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr012.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..79dc1a8fd41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr013.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_ALL/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_ALL/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_ALL/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_ALL/test.desc new file mode 100644 index 00000000000..25fa5362b30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +podrwposwr013.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPC/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPC/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPC/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPC/test.desc new file mode 100644 index 00000000000..b8cd57f4eea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr013.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_ALL/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_ALL/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_ALL/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_ALL/test.desc new file mode 100644 index 00000000000..92047a98174 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr013.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPC/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPC/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPC/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPC/test.desc new file mode 100644 index 00000000000..411760a76bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr013.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc new file mode 100644 index 00000000000..9cff557cdd2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr013.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_ALL/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_ALL/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_ALL/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_ALL/test.desc new file mode 100644 index 00000000000..de336ac5711 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +podrwposwr013.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPC/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPC/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPC/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPC/test.desc new file mode 100644 index 00000000000..8874340ddcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr013.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc new file mode 100644 index 00000000000..ace7de803fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr013.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/test.desc new file mode 100644 index 00000000000..79948f9a362 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr013.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_ALL/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_ALL/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_ALL/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_ALL/test.desc new file mode 100644 index 00000000000..e6cd6b4d48c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr013.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPC/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPC/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPC/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPC/test.desc new file mode 100644 index 00000000000..70b250967b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr013.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/podrwposwr013.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/podrwposwr013.c new file mode 100644 index 00000000000..10d02edb72a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/podrwposwr013.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + __unbuffered_p2_r5 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r5 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc new file mode 100644 index 00000000000..298a6caabca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr013.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..a4407cbd7e6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr014.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_ALL/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_ALL/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_ALL/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_ALL/test.desc new file mode 100644 index 00000000000..004393c77d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr014.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPC/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPC/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPC/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPC/test.desc new file mode 100644 index 00000000000..8bb564048f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr014.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_ALL/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_ALL/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_ALL/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_ALL/test.desc new file mode 100644 index 00000000000..49213739c7b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr014.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPC/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPC/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPC/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPC/test.desc new file mode 100644 index 00000000000..29ffbaff3c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr014.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc new file mode 100644 index 00000000000..54f9617879e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr014.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_ALL/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_ALL/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_ALL/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_ALL/test.desc new file mode 100644 index 00000000000..bc1a481f2d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr014.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPC/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPC/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPC/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPC/test.desc new file mode 100644 index 00000000000..3722e87adf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr014.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc new file mode 100644 index 00000000000..28e57f14462 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr014.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/test.desc new file mode 100644 index 00000000000..9273e6af3ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr014.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_ALL/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_ALL/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_ALL/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_ALL/test.desc new file mode 100644 index 00000000000..163834af448 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr014.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPC/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPC/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPC/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPC/test.desc new file mode 100644 index 00000000000..befa80ccbda --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr014.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/podrwposwr014.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/podrwposwr014.c new file mode 100644 index 00000000000..40d9ba41d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/podrwposwr014.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = *(&x + __unbuffered_p2_r6); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc new file mode 100644 index 00000000000..ba780a01474 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr014.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..7a34035ba65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr015.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_ALL/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_ALL/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_ALL/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_ALL/test.desc new file mode 100644 index 00000000000..f9499fa7e24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr015.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPC/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPC/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPC/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPC/test.desc new file mode 100644 index 00000000000..854cd8dafa9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr015.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_ALL/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_ALL/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_ALL/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_ALL/test.desc new file mode 100644 index 00000000000..7250431f74e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr015.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPC/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPC/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPC/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPC/test.desc new file mode 100644 index 00000000000..e373e41cdf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr015.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc new file mode 100644 index 00000000000..49d8155c42e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr015.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_ALL/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_ALL/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_ALL/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_ALL/test.desc new file mode 100644 index 00000000000..aff700521e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr015.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPC/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPC/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPC/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPC/test.desc new file mode 100644 index 00000000000..338ba341f5e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr015.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc new file mode 100644 index 00000000000..00558dc876f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr015.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/test.desc new file mode 100644 index 00000000000..6267f3cce36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podrwposwr015.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_ALL/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_ALL/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_ALL/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_ALL/test.desc new file mode 100644 index 00000000000..ba82d11db4b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr015.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPC/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPC/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPC/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPC/test.desc new file mode 100644 index 00000000000..f42ba17a30f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr015.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/podrwposwr015.c b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/podrwposwr015.c new file mode 100644 index 00000000000..bae67e3f495 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/podrwposwr015.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r5 = 0; +int __unbuffered_p2_r6 = 0; +int __unbuffered_p2_r7 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + z = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = 1; + a = __unbuffered_p2_r3; + __unbuffered_p2_r5 = a; + __unbuffered_p2_r6 = __unbuffered_p2_r5 ^ __unbuffered_p2_r5; + __unbuffered_p2_r7 = 1; + *(&x + __unbuffered_p2_r6) = __unbuffered_p2_r7; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc new file mode 100644 index 00000000000..b9edbb35ea2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podrwposwr015.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..6a551e39df4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podwr000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_ALL/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_ALL/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_ALL/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_ALL/test.desc new file mode 100644 index 00000000000..421473351ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPC/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPC/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPC/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPC/test.desc new file mode 100644 index 00000000000..97ce6bfc272 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc new file mode 100644 index 00000000000..6d7807b9b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_ALL/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_ALL/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_ALL/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_ALL/test.desc new file mode 100644 index 00000000000..48569ae5d06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPC/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPC/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPC/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPC/test.desc new file mode 100644 index 00000000000..761beeaa1e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc new file mode 100644 index 00000000000..ae64c0226c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_ALL/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_ALL/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_ALL/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_ALL/test.desc new file mode 100644 index 00000000000..314af57c53c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPC/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPC/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPC/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPC/test.desc new file mode 100644 index 00000000000..6b2118f2c8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc new file mode 100644 index 00000000000..fa7fd1fd100 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/test.desc new file mode 100644 index 00000000000..46883c8e982 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podwr000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_ALL/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_ALL/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_ALL/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_ALL/test.desc new file mode 100644 index 00000000000..f49bd51d72d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPC/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPC/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPC/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPC/test.desc new file mode 100644 index 00000000000..9f6827af1d1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/podwr000.c b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/podwr000.c new file mode 100644 index 00000000000..62c757888bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/podwr000.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc new file mode 100644 index 00000000000..2182a7fb2e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..fd1dc895f75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podwr001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_ALL/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_ALL/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_ALL/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_ALL/test.desc new file mode 100644 index 00000000000..69b9a30c6a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPC/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPC/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPC/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPC/test.desc new file mode 100644 index 00000000000..d43a2d6578d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc new file mode 100644 index 00000000000..d9c3e7e5c17 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_ALL/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_ALL/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_ALL/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_ALL/test.desc new file mode 100644 index 00000000000..758a65e7954 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPC/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPC/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPC/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPC/test.desc new file mode 100644 index 00000000000..8ffd68a9c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc new file mode 100644 index 00000000000..8c99a6db49f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_ALL/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_ALL/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_ALL/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_ALL/test.desc new file mode 100644 index 00000000000..ff8dba920f5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPC/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPC/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPC/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPC/test.desc new file mode 100644 index 00000000000..bcb0ab7ab19 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc new file mode 100644 index 00000000000..f7c2088eb90 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/test.desc new file mode 100644 index 00000000000..a204e0ded91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podwr001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_ALL/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_ALL/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_ALL/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_ALL/test.desc new file mode 100644 index 00000000000..2c3ebd2c375 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPC/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPC/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPC/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPC/test.desc new file mode 100644 index 00000000000..45a44de05cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/podwr001.c b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/podwr001.c new file mode 100644 index 00000000000..289f034e24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/podwr001.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc new file mode 100644 index 00000000000..7a8ce1cefba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..5875bf09418 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podww000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_POWER_ALL/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_ALL/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_ALL/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_ALL/test.desc new file mode 100644 index 00000000000..a902791fed6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPC/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPC/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPC/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPC/test.desc new file mode 100644 index 00000000000..3025f626e93 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc new file mode 100644 index 00000000000..e1a4e708b1c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_PSO_ALL/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_ALL/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_ALL/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_ALL/test.desc new file mode 100644 index 00000000000..5e28d89cc96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPC/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPC/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPC/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPC/test.desc new file mode 100644 index 00000000000..f0e939703cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc new file mode 100644 index 00000000000..e99f7d3a6d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_RMO_ALL/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_ALL/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_ALL/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_ALL/test.desc new file mode 100644 index 00000000000..d1d85f29836 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPC/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPC/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPC/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPC/test.desc new file mode 100644 index 00000000000..04d6be00cc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc new file mode 100644 index 00000000000..6d6a8fe83f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/test.desc new file mode 100644 index 00000000000..e08727dcfec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podww000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/test.desc new file mode 100644 index 00000000000..24b9ed85c73 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/test.desc new file mode 100644 index 00000000000..191755dbdb4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/podww000.c b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/podww000.c new file mode 100644 index 00000000000..ac1383d256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/podww000.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc new file mode 100644 index 00000000000..492fb9b197b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..6502f39e2c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podww001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_POWER_ALL/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_ALL/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_ALL/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_ALL/test.desc new file mode 100644 index 00000000000..1eeb3f6aaaf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPC/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPC/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPC/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPC/test.desc new file mode 100644 index 00000000000..59ca56a8698 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc new file mode 100644 index 00000000000..43db791c6b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_PSO_ALL/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_ALL/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_ALL/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_ALL/test.desc new file mode 100644 index 00000000000..43b515a080a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPC/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPC/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPC/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPC/test.desc new file mode 100644 index 00000000000..297acc50ae0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc new file mode 100644 index 00000000000..0f611bced15 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_RMO_ALL/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_ALL/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_ALL/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_ALL/test.desc new file mode 100644 index 00000000000..0a637646889 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPC/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPC/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPC/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPC/test.desc new file mode 100644 index 00000000000..198d8efd99e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc new file mode 100644 index 00000000000..e18974c0d3b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/test.desc new file mode 100644 index 00000000000..8bed94b0ed2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podww001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/test.desc new file mode 100644 index 00000000000..4f2aa2b1e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/test.desc new file mode 100644 index 00000000000..ac71b71680b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/podww001.c b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/podww001.c new file mode 100644 index 00000000000..5d8aecdaf63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/podww001.c @@ -0,0 +1,73 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc new file mode 100644 index 00000000000..f788dee22cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podww001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..340ceda98dc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +posrr000.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_ALL/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_ALL/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_ALL/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_ALL/test.desc new file mode 100644 index 00000000000..06930abb282 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +posrr000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPC/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPC/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPC/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPC/test.desc new file mode 100644 index 00000000000..e6597b594e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +posrr000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/test.desc new file mode 100644 index 00000000000..2d3031f3ee6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +posrr000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_ALL/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_ALL/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_ALL/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_ALL/test.desc new file mode 100644 index 00000000000..7bbc3a73737 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPC/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPC/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPC/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPC/test.desc new file mode 100644 index 00000000000..a63c7fd4cf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc new file mode 100644 index 00000000000..c97c97619c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_ALL/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_ALL/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_ALL/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_ALL/test.desc new file mode 100644 index 00000000000..74269971aae --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/test.desc new file mode 100644 index 00000000000..896d9e87802 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc new file mode 100644 index 00000000000..c17df188033 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_SC_SAFE/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_SC_SAFE/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_SC_SAFE/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_SC_SAFE/test.desc new file mode 100644 index 00000000000..730d90739c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +posrr000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_ALL/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_ALL/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_ALL/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_ALL/test.desc new file mode 100644 index 00000000000..7d42174f327 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPC/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPC/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPC/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPC/test.desc new file mode 100644 index 00000000000..cee02bd2fa8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/posrr000.c b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/posrr000.c new file mode 100644 index 00000000000..43dae58e9b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/posrr000.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int __unbuffered_p1_r7 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = x; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&y + __unbuffered_p1_r4); + __unbuffered_p1_r7 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r7 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc new file mode 100644 index 00000000000..837eb18bf48 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..6e0cc50d85b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +posrr001.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_ALL/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_ALL/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_ALL/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_ALL/test.desc new file mode 100644 index 00000000000..bfa8309ffe1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +posrr001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPC/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPC/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPC/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPC/test.desc new file mode 100644 index 00000000000..ee95e25db2b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +posrr001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/test.desc new file mode 100644 index 00000000000..42f94d98d79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +posrr001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_ALL/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_ALL/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_ALL/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_ALL/test.desc new file mode 100644 index 00000000000..47095ad063b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr001.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPC/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPC/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPC/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPC/test.desc new file mode 100644 index 00000000000..7fcc160eb25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr001.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc new file mode 100644 index 00000000000..f1791af12d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr001.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_ALL/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_ALL/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_ALL/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_ALL/test.desc new file mode 100644 index 00000000000..f8c1afc8b00 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPC/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPC/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPC/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPC/test.desc new file mode 100644 index 00000000000..f5307a7c79e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc new file mode 100644 index 00000000000..bd92b319364 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/test.desc new file mode 100644 index 00000000000..9fbd34c4e58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +posrr001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_ALL/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_ALL/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_ALL/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_ALL/test.desc new file mode 100644 index 00000000000..08bc3b03189 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPC/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPC/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPC/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPC/test.desc new file mode 100644 index 00000000000..ef3d579fb45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/posrr001.c b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/posrr001.c new file mode 100644 index 00000000000..ea414e2127e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/posrr001.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + __unbuffered_p1_r6 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc new file mode 100644 index 00000000000..d1e0c67d773 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..74d9c253d99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +posrr002.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_ALL/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_ALL/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_ALL/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_ALL/test.desc new file mode 100644 index 00000000000..1b3da7963c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPC/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPC/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPC/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPC/test.desc new file mode 100644 index 00000000000..4004f4d39a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc new file mode 100644 index 00000000000..c6f045fcf4b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_ALL/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_ALL/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_ALL/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_ALL/test.desc new file mode 100644 index 00000000000..76ed92d4cf6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPC/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPC/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPC/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPC/test.desc new file mode 100644 index 00000000000..67aed81248b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc new file mode 100644 index 00000000000..6f5cdf902c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_ALL/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_ALL/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_ALL/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_ALL/test.desc new file mode 100644 index 00000000000..e33c6fb5d99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPC/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPC/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPC/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPC/test.desc new file mode 100644 index 00000000000..910af456f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc new file mode 100644 index 00000000000..10de9c4647d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/test.desc new file mode 100644 index 00000000000..e27c2d9fc01 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +posrr002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_ALL/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_ALL/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_ALL/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_ALL/test.desc new file mode 100644 index 00000000000..90d74d3be29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPC/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPC/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPC/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPC/test.desc new file mode 100644 index 00000000000..4c81c4608ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/posrr002.c b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/posrr002.c new file mode 100644 index 00000000000..4b25cefbb68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/posrr002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&z + __unbuffered_p1_r3); + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = *(&x + __unbuffered_p1_r7); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r8 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc new file mode 100644 index 00000000000..58f25a03557 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..1ee34981081 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +posrr003.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_ALL/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_ALL/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_ALL/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_ALL/test.desc new file mode 100644 index 00000000000..4a2850f470f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +posrr003.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPC/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPC/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPC/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPC/test.desc new file mode 100644 index 00000000000..6fa3b70434f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +posrr003.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/test.desc new file mode 100644 index 00000000000..f0008d639b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +posrr003.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_ALL/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_ALL/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_ALL/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_ALL/test.desc new file mode 100644 index 00000000000..a7d87832f56 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr003.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPC/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPC/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPC/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPC/test.desc new file mode 100644 index 00000000000..82810e50a58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr003.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc new file mode 100644 index 00000000000..9425f9027c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr003.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_ALL/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_ALL/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_ALL/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_ALL/test.desc new file mode 100644 index 00000000000..4014b8e9b24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr003.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPC/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPC/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPC/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPC/test.desc new file mode 100644 index 00000000000..32003066dc3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr003.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc new file mode 100644 index 00000000000..d556e58b435 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr003.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/test.desc new file mode 100644 index 00000000000..d9c7c6548e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +posrr003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_ALL/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_ALL/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_ALL/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_ALL/test.desc new file mode 100644 index 00000000000..b74bab7bb44 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr003.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPC/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPC/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPC/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPC/test.desc new file mode 100644 index 00000000000..51be78ac67b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr003.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/posrr003.c b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/posrr003.c new file mode 100644 index 00000000000..3e3eebf7425 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/posrr003.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc new file mode 100644 index 00000000000..0acf4c01bbf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr003.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..a294a65e7b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +posrr004.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_ALL/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_ALL/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_ALL/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_ALL/test.desc new file mode 100644 index 00000000000..c1e6f6bca7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr004.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPC/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPC/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPC/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPC/test.desc new file mode 100644 index 00000000000..c3dea569630 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr004.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_ALL/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_ALL/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_ALL/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_ALL/test.desc new file mode 100644 index 00000000000..2410c29b47a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr004.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPC/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPC/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPC/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPC/test.desc new file mode 100644 index 00000000000..9eeee457ef2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr004.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc new file mode 100644 index 00000000000..285370bb405 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr004.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_ALL/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_ALL/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_ALL/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_ALL/test.desc new file mode 100644 index 00000000000..01210d30d56 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr004.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPC/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPC/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPC/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPC/test.desc new file mode 100644 index 00000000000..06ddb32f9fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr004.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc new file mode 100644 index 00000000000..e2de83d3e9c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr004.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/test.desc new file mode 100644 index 00000000000..45352cf3c98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +posrr004.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_ALL/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_ALL/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_ALL/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_ALL/test.desc new file mode 100644 index 00000000000..4f8cef88874 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr004.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPC/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPC/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPC/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPC/test.desc new file mode 100644 index 00000000000..5ef3f550f9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr004.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/posrr004.c b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/posrr004.c new file mode 100644 index 00000000000..d7bd4302782 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/posrr004.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc new file mode 100644 index 00000000000..d3fc859beb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +posrr004.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..0ffec82b0f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe000.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_ALL/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_ALL/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_ALL/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_ALL/test.desc new file mode 100644 index 00000000000..e97a36c85a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe000.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPC/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPC/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPC/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPC/test.desc new file mode 100644 index 00000000000..3d8a27c072b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe000.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_ALL/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_ALL/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_ALL/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_ALL/test.desc new file mode 100644 index 00000000000..1e32fec510b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPC/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPC/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPC/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPC/test.desc new file mode 100644 index 00000000000..83e3f24f9f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc new file mode 100644 index 00000000000..f37c179e911 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_ALL/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_ALL/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_ALL/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_ALL/test.desc new file mode 100644 index 00000000000..f8569778f5e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe000.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPC/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPC/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPC/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPC/test.desc new file mode 100644 index 00000000000..536a10c5a30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe000.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc new file mode 100644 index 00000000000..a5d0dbd29ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe000.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/test.desc new file mode 100644 index 00000000000..b69137fe387 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_ALL/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_ALL/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_ALL/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_ALL/test.desc new file mode 100644 index 00000000000..3f4fda40f05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPC/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPC/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPC/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPC/test.desc new file mode 100644 index 00000000000..e42202ea97d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/rfe000.c b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/rfe000.c new file mode 100644 index 00000000000..fd5d9809639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/rfe000.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc new file mode 100644 index 00000000000..7b184cc5ddd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..977e010045f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe001.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_ALL/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_ALL/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_ALL/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_ALL/test.desc new file mode 100644 index 00000000000..cd660b48bfe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe001.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPC/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPC/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPC/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPC/test.desc new file mode 100644 index 00000000000..b82c26d09ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe001.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_ALL/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_ALL/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_ALL/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_ALL/test.desc new file mode 100644 index 00000000000..3850b025cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe001.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPC/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPC/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPC/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPC/test.desc new file mode 100644 index 00000000000..f022763b476 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe001.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc new file mode 100644 index 00000000000..d616ca6cb46 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe001.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_ALL/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_ALL/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_ALL/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_ALL/test.desc new file mode 100644 index 00000000000..b2f39a7fe9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe001.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPC/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPC/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPC/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPC/test.desc new file mode 100644 index 00000000000..2f328f667ca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe001.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc new file mode 100644 index 00000000000..7a6c35d0432 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe001.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/test.desc new file mode 100644 index 00000000000..9aefe5983be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_ALL/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_ALL/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_ALL/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_ALL/test.desc new file mode 100644 index 00000000000..2cf12d3f787 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPC/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPC/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPC/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPC/test.desc new file mode 100644 index 00000000000..380fafc01d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/rfe001.c b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/rfe001.c new file mode 100644 index 00000000000..5ae006485f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/rfe001.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc new file mode 100644 index 00000000000..1955caad092 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..3e91d2fe5c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe002.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_ALL/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_ALL/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_ALL/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_ALL/test.desc new file mode 100644 index 00000000000..67757ffca2f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPC/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPC/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPC/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPC/test.desc new file mode 100644 index 00000000000..947f8d45a67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc new file mode 100644 index 00000000000..61059162451 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_ALL/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_ALL/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_ALL/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_ALL/test.desc new file mode 100644 index 00000000000..a17424af4fe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPC/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPC/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPC/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPC/test.desc new file mode 100644 index 00000000000..0c8b4095b53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc new file mode 100644 index 00000000000..b0f6d17a066 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_ALL/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_ALL/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_ALL/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_ALL/test.desc new file mode 100644 index 00000000000..638cd3c3ad4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPC/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPC/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPC/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPC/test.desc new file mode 100644 index 00000000000..850b5aaa462 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc new file mode 100644 index 00000000000..b048091fb70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/test.desc new file mode 100644 index 00000000000..f7aae19fb95 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_ALL/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_ALL/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_ALL/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_ALL/test.desc new file mode 100644 index 00000000000..d679cf9489a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPC/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPC/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPC/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPC/test.desc new file mode 100644 index 00000000000..ff15392bcec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/rfe002.c b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/rfe002.c new file mode 100644 index 00000000000..dc09f2a0a79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/rfe002.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc new file mode 100644 index 00000000000..cf990747fa8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..4a03851849b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe003.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_ALL/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_ALL/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_ALL/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_ALL/test.desc new file mode 100644 index 00000000000..e6000af8f12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPC/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPC/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPC/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPC/test.desc new file mode 100644 index 00000000000..33994b8d6ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc new file mode 100644 index 00000000000..89dbdd3377a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_ALL/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_ALL/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_ALL/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_ALL/test.desc new file mode 100644 index 00000000000..6674116e7fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPC/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPC/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPC/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPC/test.desc new file mode 100644 index 00000000000..aa19e0d6e5b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc new file mode 100644 index 00000000000..730c00c8777 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_ALL/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_ALL/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_ALL/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_ALL/test.desc new file mode 100644 index 00000000000..e7673a1d335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPC/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPC/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPC/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPC/test.desc new file mode 100644 index 00000000000..df89517093c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc new file mode 100644 index 00000000000..02acca7379c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/test.desc new file mode 100644 index 00000000000..7470de96258 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_ALL/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_ALL/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_ALL/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_ALL/test.desc new file mode 100644 index 00000000000..1fbd5449604 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPC/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPC/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPC/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPC/test.desc new file mode 100644 index 00000000000..44856e87e18 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/rfe003.c b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/rfe003.c new file mode 100644 index 00000000000..e2702aad4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/rfe003.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc new file mode 100644 index 00000000000..01ce3eff620 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe003.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e2d833c6c03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe004.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_ALL/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_ALL/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_ALL/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_ALL/test.desc new file mode 100644 index 00000000000..6f9e1d07c77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPC/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPC/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPC/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPC/test.desc new file mode 100644 index 00000000000..db57bb0640e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc new file mode 100644 index 00000000000..e8d38e9427f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_ALL/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_ALL/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_ALL/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_ALL/test.desc new file mode 100644 index 00000000000..c0709e7041b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPC/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPC/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPC/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPC/test.desc new file mode 100644 index 00000000000..1bc18946313 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc new file mode 100644 index 00000000000..6c1845b1bfc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_ALL/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_ALL/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_ALL/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_ALL/test.desc new file mode 100644 index 00000000000..a1810cd5653 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPC/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPC/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPC/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPC/test.desc new file mode 100644 index 00000000000..c645ce1c22a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc new file mode 100644 index 00000000000..03f9f5eeda5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/test.desc new file mode 100644 index 00000000000..a7cd2054393 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe004.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_ALL/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_ALL/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_ALL/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_ALL/test.desc new file mode 100644 index 00000000000..7ce3fa7e79e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPC/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPC/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPC/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPC/test.desc new file mode 100644 index 00000000000..691bbb1cb1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/rfe004.c b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/rfe004.c new file mode 100644 index 00000000000..9683f7c7d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/rfe004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p2_r1 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc new file mode 100644 index 00000000000..fd2e3ac8b10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe004.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..87ba6c46a67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe005.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_ALL/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_ALL/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_ALL/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_ALL/test.desc new file mode 100644 index 00000000000..2760ef141ac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +rfe005.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPC/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPC/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPC/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPC/test.desc new file mode 100644 index 00000000000..c53c9396c74 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe005.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc new file mode 100644 index 00000000000..a00ae005e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe005.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_ALL/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_ALL/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_ALL/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_ALL/test.desc new file mode 100644 index 00000000000..c6b31cb693c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe005.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPC/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPC/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPC/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPC/test.desc new file mode 100644 index 00000000000..c18686cf612 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe005.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc new file mode 100644 index 00000000000..46b4b5a0ec1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe005.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_ALL/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_ALL/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_ALL/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_ALL/test.desc new file mode 100644 index 00000000000..2dc2473f4f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe005.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPC/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPC/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPC/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPC/test.desc new file mode 100644 index 00000000000..b25365b0cad --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe005.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc new file mode 100644 index 00000000000..b92f0470f3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe005.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/test.desc new file mode 100644 index 00000000000..445680c304c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe005.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_ALL/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_ALL/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_ALL/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_ALL/test.desc new file mode 100644 index 00000000000..6a6c5f9b206 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe005.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPC/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPC/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPC/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPC/test.desc new file mode 100644 index 00000000000..7419bbf6631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe005.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/rfe005.c b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/rfe005.c new file mode 100644 index 00000000000..fe0b72c0a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/rfe005.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 2; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc new file mode 100644 index 00000000000..798e9838aa7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe005.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..00b4f28cef4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe006.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_ALL/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_ALL/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_ALL/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_ALL/test.desc new file mode 100644 index 00000000000..e2ff6f146b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +rfe006.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPC/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPC/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPC/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPC/test.desc new file mode 100644 index 00000000000..d1d85b0be5d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe006.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc new file mode 100644 index 00000000000..4a78b1a26be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe006.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/test.desc new file mode 100644 index 00000000000..8277a77f3b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe006.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/test.desc new file mode 100644 index 00000000000..c24611f12f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe006.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc new file mode 100644 index 00000000000..019ab1cfee7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe006.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_ALL/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_ALL/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_ALL/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_ALL/test.desc new file mode 100644 index 00000000000..60b389f35ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe006.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPC/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPC/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPC/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPC/test.desc new file mode 100644 index 00000000000..cf2a22ddaab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe006.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc new file mode 100644 index 00000000000..719d54b7d48 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe006.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/test.desc new file mode 100644 index 00000000000..730cf08a8c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfe006.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/test.desc new file mode 100644 index 00000000000..4b0426a1c96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe006.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/test.desc new file mode 100644 index 00000000000..b3ce1432728 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe006.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/rfe006.c b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/rfe006.c new file mode 100644 index 00000000000..1d820f3e05d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/rfe006.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = *(&x + __unbuffered_p0_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = 1; + y = __unbuffered_p3_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r4 == 0 && + __unbuffered_p2_r1 == 1 && __unbuffered_p2_r4 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc new file mode 100644 index 00000000000..e5d1c1423a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfe006.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..5eabc63a62c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_ALL/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_ALL/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_ALL/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_ALL/test.desc new file mode 100644 index 00000000000..fbb692179eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPC/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPC/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPC/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPC/test.desc new file mode 100644 index 00000000000..922454c99a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc new file mode 100644 index 00000000000..18887415c82 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_ALL/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_ALL/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_ALL/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_ALL/test.desc new file mode 100644 index 00000000000..185f2e7d5cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPC/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPC/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPC/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPC/test.desc new file mode 100644 index 00000000000..9a119158132 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc new file mode 100644 index 00000000000..b8902750eea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_ALL/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_ALL/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_ALL/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_ALL/test.desc new file mode 100644 index 00000000000..908e4d00fb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPC/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPC/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPC/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPC/test.desc new file mode 100644 index 00000000000..9f676702d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc new file mode 100644 index 00000000000..abd84d14a1c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/test.desc new file mode 100644 index 00000000000..6f347493154 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_ALL/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_ALL/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_ALL/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_ALL/test.desc new file mode 100644 index 00000000000..356510f85c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPC/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPC/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPC/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPC/test.desc new file mode 100644 index 00000000000..e708c2325f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/rfi000.c b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/rfi000.c new file mode 100644 index 00000000000..cbd34c8e45a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/rfi000.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = *(&x + __unbuffered_p1_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 1 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1 && __unbuffered_p1_r5 == 0), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc new file mode 100644 index 00000000000..170c10d984e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..4315e292617 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_ALL/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_ALL/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_ALL/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_ALL/test.desc new file mode 100644 index 00000000000..b5d878600ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPC/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPC/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPC/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPC/test.desc new file mode 100644 index 00000000000..3b4be1b88f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc new file mode 100644 index 00000000000..2fe938ebe00 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_ALL/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_ALL/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_ALL/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_ALL/test.desc new file mode 100644 index 00000000000..27475e15c8f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPC/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPC/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPC/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPC/test.desc new file mode 100644 index 00000000000..24f64a2ef42 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc new file mode 100644 index 00000000000..97bf497420b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_ALL/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_ALL/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_ALL/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_ALL/test.desc new file mode 100644 index 00000000000..8a1d9ba0deb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPC/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPC/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPC/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPC/test.desc new file mode 100644 index 00000000000..69352608b8c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc new file mode 100644 index 00000000000..f718c6fcaed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/test.desc new file mode 100644 index 00000000000..6053cd5f512 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_ALL/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_ALL/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_ALL/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_ALL/test.desc new file mode 100644 index 00000000000..a69dce9e9a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPC/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPC/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPC/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPC/test.desc new file mode 100644 index 00000000000..31ee875a4d8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/rfi001.c b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/rfi001.c new file mode 100644 index 00000000000..c9e4f79449b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/rfi001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = *(&y + __unbuffered_p0_r4); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p0_r5 == 0 && + __unbuffered_p1_r3 == 1), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc new file mode 100644 index 00000000000..36a65b7453a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..30883ee3276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi002.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_ALL/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_ALL/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_ALL/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_ALL/test.desc new file mode 100644 index 00000000000..528cf0c72ad --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPC/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPC/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPC/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPC/test.desc new file mode 100644 index 00000000000..c0ba0417077 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc new file mode 100644 index 00000000000..942adea2efd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_ALL/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_ALL/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_ALL/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_ALL/test.desc new file mode 100644 index 00000000000..cfdabd73ca5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPC/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPC/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPC/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPC/test.desc new file mode 100644 index 00000000000..c8a12ba54a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc new file mode 100644 index 00000000000..0d72d295015 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_ALL/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_ALL/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_ALL/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_ALL/test.desc new file mode 100644 index 00000000000..97c589a1b68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPC/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPC/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPC/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPC/test.desc new file mode 100644 index 00000000000..ee1afb408f9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc new file mode 100644 index 00000000000..3fe46556a10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/test.desc new file mode 100644 index 00000000000..10067349749 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_ALL/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_ALL/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_ALL/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_ALL/test.desc new file mode 100644 index 00000000000..c817c8a29d5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPC/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPC/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPC/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPC/test.desc new file mode 100644 index 00000000000..48b3423eafe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/rfi002.c b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/rfi002.c new file mode 100644 index 00000000000..c220303d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/rfi002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r5 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r5 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + x = __unbuffered_p0_r1; + __unbuffered_p0_r3 = x; + __unbuffered_p0_r4 = __unbuffered_p0_r3 ^ __unbuffered_p0_r3; + __unbuffered_p0_r5 = 1; + *(&y + __unbuffered_p0_r4) = __unbuffered_p0_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + __unbuffered_p1_r3 = y; + __unbuffered_p1_r4 = __unbuffered_p1_r3 ^ __unbuffered_p1_r3; + __unbuffered_p1_r5 = 1; + *(&x + __unbuffered_p1_r4) = __unbuffered_p1_r5; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 2 && __unbuffered_p1_r3 == 2), + "Program proven to be relaxed for PPC, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc new file mode 100644 index 00000000000..26156cba6bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..fdb0bead5b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_POWER_ALL/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_ALL/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_ALL/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_ALL/test.desc new file mode 100644 index 00000000000..53908ee5fcd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe000.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPC/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPC/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPC/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPC/test.desc new file mode 100644 index 00000000000..a780aa1db05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe000.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/test.desc new file mode 100644 index 00000000000..14f7ce420ae --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_PSO_ALL/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_ALL/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_ALL/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_ALL/test.desc new file mode 100644 index 00000000000..d425842f63d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPC/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPC/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPC/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPC/test.desc new file mode 100644 index 00000000000..740a93b35fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc new file mode 100644 index 00000000000..059e0b72889 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_RMO_ALL/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_ALL/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_ALL/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_ALL/test.desc new file mode 100644 index 00000000000..2386b929a96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPC/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPC/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPC/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPC/test.desc new file mode 100644 index 00000000000..bc756b28ae7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc new file mode 100644 index 00000000000..8b40aca1475 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/test.desc new file mode 100644 index 00000000000..f810c0e5f1c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_TSO_ALL/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_ALL/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_ALL/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_ALL/test.desc new file mode 100644 index 00000000000..1f392bc20dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPC/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPC/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPC/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPC/test.desc new file mode 100644 index 00000000000..381fb6e6ff1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/safe000.c b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/safe000.c new file mode 100644 index 00000000000..6ffd165cbb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/safe000.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc new file mode 100644 index 00000000000..d4b3b3c5c80 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..2dd1498d062 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_POWER_ALL/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_ALL/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_ALL/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_ALL/test.desc new file mode 100644 index 00000000000..a626332e993 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPC/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPC/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPC/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPC/test.desc new file mode 100644 index 00000000000..5219a8ab605 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/test.desc new file mode 100644 index 00000000000..e1c1d565ae0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_PSO_ALL/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_ALL/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_ALL/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_ALL/test.desc new file mode 100644 index 00000000000..4c47af37cf0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPC/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPC/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPC/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPC/test.desc new file mode 100644 index 00000000000..97d2cc6cd96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc new file mode 100644 index 00000000000..ff593e48554 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_RMO_ALL/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_ALL/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_ALL/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_ALL/test.desc new file mode 100644 index 00000000000..c10f815acef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPC/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPC/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPC/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPC/test.desc new file mode 100644 index 00000000000..593015c0bec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc new file mode 100644 index 00000000000..d1bdd758e60 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/test.desc new file mode 100644 index 00000000000..820bf8c6528 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_TSO_ALL/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_ALL/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_ALL/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_ALL/test.desc new file mode 100644 index 00000000000..a1c5513238a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPC/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPC/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPC/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPC/test.desc new file mode 100644 index 00000000000..74ff0246456 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/safe001.c b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/safe001.c new file mode 100644 index 00000000000..9cdaf193ec5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/safe001.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&y + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc new file mode 100644 index 00000000000..252a39674e6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1da159462ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe002.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_POWER_ALL/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_ALL/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_ALL/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_ALL/test.desc new file mode 100644 index 00000000000..02e51527405 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPC/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPC/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPC/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPC/test.desc new file mode 100644 index 00000000000..f03b3108fed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/test.desc new file mode 100644 index 00000000000..27b7a75d728 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/test.desc new file mode 100644 index 00000000000..f39f45aad54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc new file mode 100644 index 00000000000..4ad2d7f9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_RMO_ALL/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_ALL/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_ALL/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_ALL/test.desc new file mode 100644 index 00000000000..4f0594601cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPC/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPC/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPC/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPC/test.desc new file mode 100644 index 00000000000..177ac85a789 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc new file mode 100644 index 00000000000..7d46b7a0335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/test.desc new file mode 100644 index 00000000000..f1a0ecd41fb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/test.desc new file mode 100644 index 00000000000..3995a8be134 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/test.desc new file mode 100644 index 00000000000..7903502fad4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/safe002.c b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/safe002.c new file mode 100644 index 00000000000..8ab3de2c694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/safe002.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc new file mode 100644 index 00000000000..6a1ef6208b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e67ac27832c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe003.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_POWER_ALL/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_ALL/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_ALL/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_ALL/test.desc new file mode 100644 index 00000000000..6353e95a739 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPC/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPC/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPC/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPC/test.desc new file mode 100644 index 00000000000..c05015cca62 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc new file mode 100644 index 00000000000..60b17795d3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/test.desc new file mode 100644 index 00000000000..2f10ce97f74 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/test.desc new file mode 100644 index 00000000000..8a1a429cc45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc new file mode 100644 index 00000000000..437dfeb6e75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_RMO_ALL/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_ALL/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_ALL/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_ALL/test.desc new file mode 100644 index 00000000000..3a8f9fa2858 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPC/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPC/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPC/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPC/test.desc new file mode 100644 index 00000000000..ab9d91b2d15 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc new file mode 100644 index 00000000000..4ac1d3e510b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/test.desc new file mode 100644 index 00000000000..b68d8fdc763 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/test.desc new file mode 100644 index 00000000000..c2852aa117f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/test.desc new file mode 100644 index 00000000000..6035587c3e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/safe003.c b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/safe003.c new file mode 100644 index 00000000000..eb0bb9220f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/safe003.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc new file mode 100644 index 00000000000..4a2201f85f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..9f3a4b085db --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe004.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_ALL/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_ALL/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_ALL/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_ALL/test.desc new file mode 100644 index 00000000000..3e6f1cdda98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/test.desc new file mode 100644 index 00000000000..53472b25006 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc new file mode 100644 index 00000000000..5fcfa11e9f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/test.desc new file mode 100644 index 00000000000..e68c54db660 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/test.desc new file mode 100644 index 00000000000..3efb869cd65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc new file mode 100644 index 00000000000..a3815ad1b08 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_RMO_ALL/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_ALL/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_ALL/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_ALL/test.desc new file mode 100644 index 00000000000..1d0d3166393 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPC/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPC/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPC/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPC/test.desc new file mode 100644 index 00000000000..4b22bdb947f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc new file mode 100644 index 00000000000..10c92060e4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/test.desc new file mode 100644 index 00000000000..b55046755f5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe004.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/test.desc new file mode 100644 index 00000000000..18264c60b31 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/test.desc new file mode 100644 index 00000000000..1cee8628380 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/safe004.c b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/safe004.c new file mode 100644 index 00000000000..6b1fa9a097a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/safe004.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc new file mode 100644 index 00000000000..aedb08726ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..db761e5a7b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe005.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_POWER_ALL/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_ALL/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_ALL/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_ALL/test.desc new file mode 100644 index 00000000000..a28f8340e92 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPC/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPC/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPC/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPC/test.desc new file mode 100644 index 00000000000..adecfa9e526 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc new file mode 100644 index 00000000000..32f63498450 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_PSO_ALL/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_ALL/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_ALL/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_ALL/test.desc new file mode 100644 index 00000000000..e4eeac610c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPC/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPC/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPC/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPC/test.desc new file mode 100644 index 00000000000..3f9548c948f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc new file mode 100644 index 00000000000..35c6688d8e1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_RMO_ALL/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_ALL/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_ALL/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_ALL/test.desc new file mode 100644 index 00000000000..0ada4a56de5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPC/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPC/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPC/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPC/test.desc new file mode 100644 index 00000000000..9f4c75cf034 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc new file mode 100644 index 00000000000..d5eadf8fafb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/test.desc new file mode 100644 index 00000000000..00b6ed2175d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe005.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_TSO_ALL/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_ALL/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_ALL/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_ALL/test.desc new file mode 100644 index 00000000000..dcb5104ad55 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPC/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPC/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPC/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPC/test.desc new file mode 100644 index 00000000000..ba7c2c92276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/safe005.c b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/safe005.c new file mode 100644 index 00000000000..aadd54724c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/safe005.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc new file mode 100644 index 00000000000..2834168bbe0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..19c5f32d7f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe006.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_POWER_ALL/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_ALL/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_ALL/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_ALL/test.desc new file mode 100644 index 00000000000..faf67d354fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPC/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPC/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPC/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPC/test.desc new file mode 100644 index 00000000000..7dd02e44fee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc new file mode 100644 index 00000000000..901081067e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_PSO_ALL/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_ALL/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_ALL/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_ALL/test.desc new file mode 100644 index 00000000000..936907e3396 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPC/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPC/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPC/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPC/test.desc new file mode 100644 index 00000000000..254519c665b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc new file mode 100644 index 00000000000..db3e7a73e68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_RMO_ALL/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_ALL/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_ALL/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_ALL/test.desc new file mode 100644 index 00000000000..f84d3955d91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPC/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPC/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPC/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPC/test.desc new file mode 100644 index 00000000000..a3da8e0d02f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc new file mode 100644 index 00000000000..208054821ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/test.desc new file mode 100644 index 00000000000..03907b13ada --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe006.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_TSO_ALL/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_ALL/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_ALL/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_ALL/test.desc new file mode 100644 index 00000000000..bbacf66a898 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPC/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPC/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPC/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPC/test.desc new file mode 100644 index 00000000000..7935b056c3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/safe006.c b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/safe006.c new file mode 100644 index 00000000000..b68842537a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/safe006.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc new file mode 100644 index 00000000000..016ba50e925 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..dbb1dc62602 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe007.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/test.desc new file mode 100644 index 00000000000..a6078978a3e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/test.desc new file mode 100644 index 00000000000..987df97d72f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc new file mode 100644 index 00000000000..5c5a9c6d047 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/test.desc new file mode 100644 index 00000000000..936757099ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/test.desc new file mode 100644 index 00000000000..8f6972156cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc new file mode 100644 index 00000000000..7ab14277274 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/test.desc new file mode 100644 index 00000000000..3c02721ea2b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/test.desc new file mode 100644 index 00000000000..e5efc23f13b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc new file mode 100644 index 00000000000..daf00b20345 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/test.desc new file mode 100644 index 00000000000..b3d1cfc7c26 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe007.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/test.desc new file mode 100644 index 00000000000..74bdb95c852 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/test.desc new file mode 100644 index 00000000000..bea1320947b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/safe007.c b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/safe007.c new file mode 100644 index 00000000000..9d34acd490a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/safe007.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc new file mode 100644 index 00000000000..572b8b66c77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..36b5fca0b53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe008.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/test.desc new file mode 100644 index 00000000000..c8cfe565afd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/test.desc new file mode 100644 index 00000000000..7069ec2b89c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc new file mode 100644 index 00000000000..56e81078d02 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/test.desc new file mode 100644 index 00000000000..bcac9e37f33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/test.desc new file mode 100644 index 00000000000..924bcb796fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc new file mode 100644 index 00000000000..be7672d11e6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/test.desc new file mode 100644 index 00000000000..06782ae47c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/test.desc new file mode 100644 index 00000000000..f6f37f07653 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc new file mode 100644 index 00000000000..c3a39d969d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/test.desc new file mode 100644 index 00000000000..2c439125145 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe008.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/test.desc new file mode 100644 index 00000000000..beabc236e9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/test.desc new file mode 100644 index 00000000000..11b8bc5c64c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/safe008.c b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/safe008.c new file mode 100644 index 00000000000..fbdb71f41cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/safe008.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc new file mode 100644 index 00000000000..3efef04b349 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..6a7a492863c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe009.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_POWER_ALL/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_ALL/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_ALL/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_ALL/test.desc new file mode 100644 index 00000000000..7149e3a5222 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPC/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPC/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPC/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPC/test.desc new file mode 100644 index 00000000000..eeee5c3025a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc new file mode 100644 index 00000000000..8fdb500edd8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/test.desc new file mode 100644 index 00000000000..6ad04f65020 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/test.desc new file mode 100644 index 00000000000..d02a3eea5df --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc new file mode 100644 index 00000000000..c1d5f6be8d7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/test.desc new file mode 100644 index 00000000000..a6d9281c544 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/test.desc new file mode 100644 index 00000000000..7e3a615854c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc new file mode 100644 index 00000000000..89335c34268 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/test.desc new file mode 100644 index 00000000000..e3304d288c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe009.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/test.desc new file mode 100644 index 00000000000..9e9f4538aac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/test.desc new file mode 100644 index 00000000000..259d8f88466 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/safe009.c b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/safe009.c new file mode 100644 index 00000000000..5c38eaf349a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/safe009.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc new file mode 100644 index 00000000000..ee23e17f422 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..96ed8bede9a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe010.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_POWER_ALL/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_ALL/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_ALL/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_ALL/test.desc new file mode 100644 index 00000000000..4ac2565e6a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPC/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPC/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPC/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPC/test.desc new file mode 100644 index 00000000000..6dd2bc1188b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc new file mode 100644 index 00000000000..99042c00668 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_PSO_ALL/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_ALL/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_ALL/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_ALL/test.desc new file mode 100644 index 00000000000..73c2834d219 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPC/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPC/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPC/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPC/test.desc new file mode 100644 index 00000000000..a38ad6398bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc new file mode 100644 index 00000000000..8f7456a4714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_RMO_ALL/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_ALL/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_ALL/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_ALL/test.desc new file mode 100644 index 00000000000..e982ec8a1e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPC/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPC/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPC/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPC/test.desc new file mode 100644 index 00000000000..9b317e730be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc new file mode 100644 index 00000000000..930648bf5d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/test.desc new file mode 100644 index 00000000000..9fe489331fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe010.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_TSO_ALL/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_ALL/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_ALL/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_ALL/test.desc new file mode 100644 index 00000000000..cdc4cc32e9e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPC/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPC/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPC/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPC/test.desc new file mode 100644 index 00000000000..65a46c66b0f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/safe010.c b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/safe010.c new file mode 100644 index 00000000000..57004648842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/safe010.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc new file mode 100644 index 00000000000..b6f55eac688 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1f42a50e608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe011.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_POWER_ALL/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_ALL/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_ALL/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_ALL/test.desc new file mode 100644 index 00000000000..722a9e662a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPC/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPC/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPC/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPC/test.desc new file mode 100644 index 00000000000..08ca2586bdb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc new file mode 100644 index 00000000000..f9de8dd56f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_PSO_ALL/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_ALL/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_ALL/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_ALL/test.desc new file mode 100644 index 00000000000..4faea3f5bb5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPC/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPC/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPC/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPC/test.desc new file mode 100644 index 00000000000..152c2082553 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc new file mode 100644 index 00000000000..f6cb0ce0340 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_RMO_ALL/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_ALL/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_ALL/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_ALL/test.desc new file mode 100644 index 00000000000..84b41033c74 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPC/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPC/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPC/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPC/test.desc new file mode 100644 index 00000000000..dfff2812d2b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc new file mode 100644 index 00000000000..8460917640c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/test.desc new file mode 100644 index 00000000000..66c082a7399 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe011.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_TSO_ALL/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_ALL/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_ALL/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_ALL/test.desc new file mode 100644 index 00000000000..7d65fe43297 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPC/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPC/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPC/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPC/test.desc new file mode 100644 index 00000000000..2f81a3802ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/safe011.c b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/safe011.c new file mode 100644 index 00000000000..12b40d0c72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/safe011.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc new file mode 100644 index 00000000000..948aeb35339 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..f2d2c77fc4a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe012.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_POWER_ALL/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_ALL/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_ALL/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_ALL/test.desc new file mode 100644 index 00000000000..071a266d653 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPC/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPC/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPC/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPC/test.desc new file mode 100644 index 00000000000..c58a901a442 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc new file mode 100644 index 00000000000..c128694ede3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/test.desc new file mode 100644 index 00000000000..dc35f5efcef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/test.desc new file mode 100644 index 00000000000..94ad97d5fd4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc new file mode 100644 index 00000000000..daa69c77c1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/test.desc new file mode 100644 index 00000000000..ecbf01d46d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/test.desc new file mode 100644 index 00000000000..62b5efa5cd6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc new file mode 100644 index 00000000000..0a0be48843a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/test.desc new file mode 100644 index 00000000000..0e195323566 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe012.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/test.desc new file mode 100644 index 00000000000..e39d0976aa2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/test.desc new file mode 100644 index 00000000000..66bd7fa923b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/safe012.c b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/safe012.c new file mode 100644 index 00000000000..71b5ff2c4a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/safe012.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc new file mode 100644 index 00000000000..cee4b1d5569 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..d0ae4c0ea04 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe013.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_POWER_ALL/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_ALL/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_ALL/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_ALL/test.desc new file mode 100644 index 00000000000..523e9ee6868 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPC/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPC/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPC/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPC/test.desc new file mode 100644 index 00000000000..07b3dfabd01 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc new file mode 100644 index 00000000000..273503d17cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/test.desc new file mode 100644 index 00000000000..235067461c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/test.desc new file mode 100644 index 00000000000..4b6b5ac03d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc new file mode 100644 index 00000000000..cf36304e307 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/test.desc new file mode 100644 index 00000000000..94ab7343300 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/test.desc new file mode 100644 index 00000000000..110830dae97 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc new file mode 100644 index 00000000000..d092abe379c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/test.desc new file mode 100644 index 00000000000..a4db7398af5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe013.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/test.desc new file mode 100644 index 00000000000..2d42d0de892 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/test.desc new file mode 100644 index 00000000000..f108af163bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/safe013.c b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/safe013.c new file mode 100644 index 00000000000..eed9a9e3f41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/safe013.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc new file mode 100644 index 00000000000..22e2a70f6a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..04f67d8705d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe014.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_POWER_ALL/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_ALL/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_ALL/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_ALL/test.desc new file mode 100644 index 00000000000..56edfaaf3f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPC/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPC/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPC/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPC/test.desc new file mode 100644 index 00000000000..9931f6d4ebf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc new file mode 100644 index 00000000000..6be3289e8ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_PSO_ALL/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_ALL/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_ALL/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_ALL/test.desc new file mode 100644 index 00000000000..9f680c9e76d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPC/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPC/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPC/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPC/test.desc new file mode 100644 index 00000000000..be51f111783 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc new file mode 100644 index 00000000000..4f8d40a60a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_RMO_ALL/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_ALL/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_ALL/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_ALL/test.desc new file mode 100644 index 00000000000..9d6e00b7be8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPC/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPC/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPC/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPC/test.desc new file mode 100644 index 00000000000..f72885a0ffb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc new file mode 100644 index 00000000000..5de07fe1e1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/test.desc new file mode 100644 index 00000000000..0f036bda206 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe014.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_TSO_ALL/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_ALL/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_ALL/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_ALL/test.desc new file mode 100644 index 00000000000..958d97d53d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPC/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPC/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPC/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPC/test.desc new file mode 100644 index 00000000000..7dcdfa0d572 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/safe014.c b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/safe014.c new file mode 100644 index 00000000000..012b5eb96f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/safe014.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc new file mode 100644 index 00000000000..3eea17d25c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..ebcd28a325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe015.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_POWER_ALL/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_ALL/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_ALL/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_ALL/test.desc new file mode 100644 index 00000000000..12f6ded1adc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPC/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPC/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPC/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPC/test.desc new file mode 100644 index 00000000000..b2496bdcbed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc new file mode 100644 index 00000000000..c35281235d6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_PSO_ALL/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_ALL/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_ALL/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_ALL/test.desc new file mode 100644 index 00000000000..fab66b04aca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPC/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPC/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPC/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPC/test.desc new file mode 100644 index 00000000000..2fcc9a43c48 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc new file mode 100644 index 00000000000..40dfa9fb029 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_RMO_ALL/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_ALL/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_ALL/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_ALL/test.desc new file mode 100644 index 00000000000..dc838833953 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPC/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPC/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPC/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPC/test.desc new file mode 100644 index 00000000000..36e869762be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc new file mode 100644 index 00000000000..446cc025ea9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/test.desc new file mode 100644 index 00000000000..a85dea384e5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe015.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_TSO_ALL/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_ALL/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_ALL/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_ALL/test.desc new file mode 100644 index 00000000000..255453965be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPC/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPC/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPC/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPC/test.desc new file mode 100644 index 00000000000..ff0e75c9fee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/safe015.c b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/safe015.c new file mode 100644 index 00000000000..203da0c2e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/safe015.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc new file mode 100644 index 00000000000..0f897bb6314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..4139ffa7b34 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe016.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_POWER_ALL/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_ALL/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_ALL/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_ALL/test.desc new file mode 100644 index 00000000000..ecb2df7edc1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPC/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPC/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPC/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPC/test.desc new file mode 100644 index 00000000000..5ae82ddba53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc new file mode 100644 index 00000000000..ad5de1c7f2d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_PSO_ALL/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_ALL/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_ALL/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_ALL/test.desc new file mode 100644 index 00000000000..dd5ffaac848 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPC/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPC/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPC/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPC/test.desc new file mode 100644 index 00000000000..7d271dac287 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc new file mode 100644 index 00000000000..de0230863eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_RMO_ALL/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_ALL/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_ALL/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_ALL/test.desc new file mode 100644 index 00000000000..8ebe2425af6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPC/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPC/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPC/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPC/test.desc new file mode 100644 index 00000000000..cbf66a0378f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc new file mode 100644 index 00000000000..55f8d666e7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/test.desc new file mode 100644 index 00000000000..ea76e09a5b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe016.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_TSO_ALL/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_ALL/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_ALL/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_ALL/test.desc new file mode 100644 index 00000000000..0eab719c206 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPC/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPC/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPC/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPC/test.desc new file mode 100644 index 00000000000..6612b688803 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/safe016.c b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/safe016.c new file mode 100644 index 00000000000..64fe1068dc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/safe016.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc new file mode 100644 index 00000000000..ef01fa87357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b4623335313 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe017.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_POWER_ALL/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_ALL/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_ALL/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_ALL/test.desc new file mode 100644 index 00000000000..186a1b99f59 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPC/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPC/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPC/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPC/test.desc new file mode 100644 index 00000000000..92d69da20cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc new file mode 100644 index 00000000000..579205e7eea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_PSO_ALL/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_ALL/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_ALL/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_ALL/test.desc new file mode 100644 index 00000000000..4cd29aef57d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPC/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPC/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPC/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPC/test.desc new file mode 100644 index 00000000000..736d5c00a05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc new file mode 100644 index 00000000000..073ed0c796b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_RMO_ALL/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_ALL/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_ALL/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_ALL/test.desc new file mode 100644 index 00000000000..9c818ecc421 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPC/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPC/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPC/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPC/test.desc new file mode 100644 index 00000000000..4bb544e207f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc new file mode 100644 index 00000000000..f9fa80ab520 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/test.desc new file mode 100644 index 00000000000..df0f25628d6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe017.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_TSO_ALL/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_ALL/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_ALL/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_ALL/test.desc new file mode 100644 index 00000000000..886f4a4160a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPC/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPC/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPC/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPC/test.desc new file mode 100644 index 00000000000..2ba2cca1b67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/safe017.c b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/safe017.c new file mode 100644 index 00000000000..ce3b107f723 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/safe017.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc new file mode 100644 index 00000000000..a67e27f1606 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1c1bd5ce591 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe018.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_POWER_ALL/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_ALL/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_ALL/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_ALL/test.desc new file mode 100644 index 00000000000..913bcb34e65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPC/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPC/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPC/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPC/test.desc new file mode 100644 index 00000000000..111f4edb196 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc new file mode 100644 index 00000000000..fa32a07d206 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_PSO_ALL/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_ALL/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_ALL/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_ALL/test.desc new file mode 100644 index 00000000000..e4b883d28e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPC/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPC/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPC/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPC/test.desc new file mode 100644 index 00000000000..3dc627399b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc new file mode 100644 index 00000000000..ab2ff3497f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_RMO_ALL/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_ALL/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_ALL/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_ALL/test.desc new file mode 100644 index 00000000000..437e71cd64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPC/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPC/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPC/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPC/test.desc new file mode 100644 index 00000000000..809b9071f2c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc new file mode 100644 index 00000000000..1224821e8ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/test.desc new file mode 100644 index 00000000000..5f246d405bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe018.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_TSO_ALL/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_ALL/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_ALL/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_ALL/test.desc new file mode 100644 index 00000000000..cc8bcadd160 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPC/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPC/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPC/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPC/test.desc new file mode 100644 index 00000000000..180da74c8f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/safe018.c b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/safe018.c new file mode 100644 index 00000000000..d066e4cec1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/safe018.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc new file mode 100644 index 00000000000..8afe0ffcbc9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e9e0473829b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe019.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/test.desc new file mode 100644 index 00000000000..3b562e01800 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/test.desc new file mode 100644 index 00000000000..e1e346821cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/test.desc new file mode 100644 index 00000000000..1749c3fef07 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/test.desc new file mode 100644 index 00000000000..b479af95f22 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc new file mode 100644 index 00000000000..92d3ae69028 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/test.desc new file mode 100644 index 00000000000..75d7233c744 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/test.desc new file mode 100644 index 00000000000..32e318a3235 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc new file mode 100644 index 00000000000..311771e20fe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/test.desc new file mode 100644 index 00000000000..8fb1d177952 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe019.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/test.desc new file mode 100644 index 00000000000..71766201bbf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/test.desc new file mode 100644 index 00000000000..43f628b95fb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/safe019.c b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/safe019.c new file mode 100644 index 00000000000..ddfc36f8f2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/safe019.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc new file mode 100644 index 00000000000..c86dab48805 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..67994832ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe020.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/test.desc new file mode 100644 index 00000000000..be438ba8ca6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/test.desc new file mode 100644 index 00000000000..c21a474da9a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc new file mode 100644 index 00000000000..b8a7e4b2cca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/test.desc new file mode 100644 index 00000000000..f951cf9d904 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/test.desc new file mode 100644 index 00000000000..51801998550 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc new file mode 100644 index 00000000000..fd074b3a2c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/test.desc new file mode 100644 index 00000000000..50d6fe781b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/test.desc new file mode 100644 index 00000000000..3ebc471f29b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc new file mode 100644 index 00000000000..6406138c6b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/test.desc new file mode 100644 index 00000000000..84bcfda851f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe020.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/test.desc new file mode 100644 index 00000000000..91d6de0a43c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/test.desc new file mode 100644 index 00000000000..f20b431d91e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/safe020.c b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/safe020.c new file mode 100644 index 00000000000..52c7a8a8b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/safe020.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc new file mode 100644 index 00000000000..b8b1cc8d169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..5e5bde5f2dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe021.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_POWER_ALL/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_ALL/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_ALL/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_ALL/test.desc new file mode 100644 index 00000000000..dcf93ea24cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPC/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPC/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPC/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPC/test.desc new file mode 100644 index 00000000000..ef7d5a02cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc new file mode 100644 index 00000000000..285a2c827c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/test.desc new file mode 100644 index 00000000000..7e4c4e7d828 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/test.desc new file mode 100644 index 00000000000..c21bf2877b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc new file mode 100644 index 00000000000..7b34de3a67d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/test.desc new file mode 100644 index 00000000000..39cfed99810 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/test.desc new file mode 100644 index 00000000000..9c5a499d649 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc new file mode 100644 index 00000000000..97b363dd293 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/test.desc new file mode 100644 index 00000000000..e0d34f6fec9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe021.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/test.desc new file mode 100644 index 00000000000..893b31c148d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/test.desc new file mode 100644 index 00000000000..8f5c7084236 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/safe021.c b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/safe021.c new file mode 100644 index 00000000000..78319ab9ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/safe021.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc new file mode 100644 index 00000000000..4cbc4b499fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..ef6374e6d33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe022.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_POWER_ALL/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_ALL/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_ALL/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_ALL/test.desc new file mode 100644 index 00000000000..a66a2f1be76 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPC/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPC/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPC/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPC/test.desc new file mode 100644 index 00000000000..daf0a8cfb23 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc new file mode 100644 index 00000000000..364d3ee08bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_PSO_ALL/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_ALL/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_ALL/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_ALL/test.desc new file mode 100644 index 00000000000..fae303bcf05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPC/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPC/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPC/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPC/test.desc new file mode 100644 index 00000000000..5368562c8ce --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc new file mode 100644 index 00000000000..5b277cb9910 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_RMO_ALL/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_ALL/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_ALL/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_ALL/test.desc new file mode 100644 index 00000000000..1935de00e24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPC/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPC/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPC/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPC/test.desc new file mode 100644 index 00000000000..0e4c4451250 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc new file mode 100644 index 00000000000..fc224d70f1c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/test.desc new file mode 100644 index 00000000000..9fe6aebb1d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe022.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_TSO_ALL/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_ALL/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_ALL/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_ALL/test.desc new file mode 100644 index 00000000000..5cb4e45cc1f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPC/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPC/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPC/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPC/test.desc new file mode 100644 index 00000000000..d09fc3644b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/safe022.c b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/safe022.c new file mode 100644 index 00000000000..a5ce76336e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/safe022.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc new file mode 100644 index 00000000000..8eac0237ff1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..51b1c97b2c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe023.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_POWER_ALL/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_ALL/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_ALL/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_ALL/test.desc new file mode 100644 index 00000000000..2f099049bcb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPC/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPC/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPC/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPC/test.desc new file mode 100644 index 00000000000..303c9152655 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc new file mode 100644 index 00000000000..b5f8d873a3b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_PSO_ALL/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_ALL/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_ALL/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_ALL/test.desc new file mode 100644 index 00000000000..8c89fe7bb61 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPC/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPC/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPC/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPC/test.desc new file mode 100644 index 00000000000..8ed9065f2d1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc new file mode 100644 index 00000000000..5c007cc0d92 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_RMO_ALL/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_ALL/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_ALL/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_ALL/test.desc new file mode 100644 index 00000000000..1329c6b516a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPC/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPC/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPC/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPC/test.desc new file mode 100644 index 00000000000..425a2fbd34f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc new file mode 100644 index 00000000000..6a9ee81b314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/test.desc new file mode 100644 index 00000000000..82771a93dbe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe023.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_TSO_ALL/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_ALL/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_ALL/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_ALL/test.desc new file mode 100644 index 00000000000..9b23a1cdd56 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPC/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPC/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPC/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPC/test.desc new file mode 100644 index 00000000000..b41ee2b3f39 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/safe023.c b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/safe023.c new file mode 100644 index 00000000000..ec67d8df224 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/safe023.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc new file mode 100644 index 00000000000..5b41beed3b1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..2c40b3cc645 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe024.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_POWER_ALL/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_ALL/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_ALL/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_ALL/test.desc new file mode 100644 index 00000000000..b54f91bf6c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPC/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPC/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPC/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPC/test.desc new file mode 100644 index 00000000000..ad140826d1c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc new file mode 100644 index 00000000000..319e027ba86 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_PSO_ALL/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_ALL/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_ALL/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_ALL/test.desc new file mode 100644 index 00000000000..e4e05a5c337 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPC/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPC/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPC/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPC/test.desc new file mode 100644 index 00000000000..57606cdbcf7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc new file mode 100644 index 00000000000..a21f814411f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_RMO_ALL/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_ALL/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_ALL/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_ALL/test.desc new file mode 100644 index 00000000000..b2d779cdfc8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPC/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPC/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPC/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPC/test.desc new file mode 100644 index 00000000000..bd6b0e75e42 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc new file mode 100644 index 00000000000..d747c0c98ce --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/test.desc new file mode 100644 index 00000000000..ac721e62639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe024.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_TSO_ALL/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_ALL/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_ALL/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_ALL/test.desc new file mode 100644 index 00000000000..ab25afb193a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPC/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPC/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPC/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPC/test.desc new file mode 100644 index 00000000000..b0ea90e6aed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/safe024.c b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/safe024.c new file mode 100644 index 00000000000..4d0dc7f5454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/safe024.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc new file mode 100644 index 00000000000..5a0c6e067f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..d7cf232cdd1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe025.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_POWER_ALL/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_ALL/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_ALL/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_ALL/test.desc new file mode 100644 index 00000000000..7725bb752d8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPC/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPC/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPC/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPC/test.desc new file mode 100644 index 00000000000..6ca714c8d94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_PSO_ALL/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_ALL/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_ALL/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_ALL/test.desc new file mode 100644 index 00000000000..6005c633809 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPC/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPC/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPC/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPC/test.desc new file mode 100644 index 00000000000..6f411d37bb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc new file mode 100644 index 00000000000..0f4aa8c7b64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_RMO_ALL/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_ALL/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_ALL/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_ALL/test.desc new file mode 100644 index 00000000000..e1986b7e72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPC/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPC/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPC/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPC/test.desc new file mode 100644 index 00000000000..3ee12ec4355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc new file mode 100644 index 00000000000..c949b8b92ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/test.desc new file mode 100644 index 00000000000..bca41ee51fe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe025.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_TSO_ALL/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_ALL/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_ALL/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_ALL/test.desc new file mode 100644 index 00000000000..5958c2d1445 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPC/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPC/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPC/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPC/test.desc new file mode 100644 index 00000000000..fcbe1b8dfef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/safe025.c b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/safe025.c new file mode 100644 index 00000000000..00be89c1a1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/safe025.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc new file mode 100644 index 00000000000..2ad15c0be83 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..80a5664ecd4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe026.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_POWER_ALL/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_ALL/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_ALL/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_ALL/test.desc new file mode 100644 index 00000000000..509dbf7d2ca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPC/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPC/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPC/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPC/test.desc new file mode 100644 index 00000000000..fa7169eda25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc new file mode 100644 index 00000000000..9cd907687c5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_PSO_ALL/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_ALL/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_ALL/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_ALL/test.desc new file mode 100644 index 00000000000..71be668fc62 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPC/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPC/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPC/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPC/test.desc new file mode 100644 index 00000000000..7cc7e63da4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc new file mode 100644 index 00000000000..4607fc25344 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_RMO_ALL/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_ALL/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_ALL/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_ALL/test.desc new file mode 100644 index 00000000000..9a6ae783a19 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPC/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPC/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPC/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPC/test.desc new file mode 100644 index 00000000000..414a84e4ecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc new file mode 100644 index 00000000000..8e995b4fc68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/test.desc new file mode 100644 index 00000000000..e0210f345bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe026.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_TSO_ALL/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_ALL/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_ALL/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_ALL/test.desc new file mode 100644 index 00000000000..f37c2e5cfd2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPC/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPC/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPC/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPC/test.desc new file mode 100644 index 00000000000..75a0db6e065 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/safe026.c b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/safe026.c new file mode 100644 index 00000000000..c2094615e20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/safe026.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc new file mode 100644 index 00000000000..35466976d95 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..4f77e87fb22 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe027.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_POWER_ALL/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_ALL/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_ALL/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_ALL/test.desc new file mode 100644 index 00000000000..5c2c271650f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPC/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPC/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPC/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPC/test.desc new file mode 100644 index 00000000000..b8839941d84 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_PSO_ALL/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_ALL/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_ALL/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_ALL/test.desc new file mode 100644 index 00000000000..9d0307cc9d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPC/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPC/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPC/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPC/test.desc new file mode 100644 index 00000000000..2bf4642284b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc new file mode 100644 index 00000000000..29cb693e496 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_RMO_ALL/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_ALL/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_ALL/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_ALL/test.desc new file mode 100644 index 00000000000..477f5fb6940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPC/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPC/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPC/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPC/test.desc new file mode 100644 index 00000000000..8c735d9b10c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc new file mode 100644 index 00000000000..73ba793e222 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/test.desc new file mode 100644 index 00000000000..f2af41bad6a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe027.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/test.desc new file mode 100644 index 00000000000..eb0e643b02d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/test.desc new file mode 100644 index 00000000000..dfa5912dded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/safe027.c b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/safe027.c new file mode 100644 index 00000000000..4aac3f10e79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/safe027.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc new file mode 100644 index 00000000000..acd20502f12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..bc560f8ef1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe028.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_POWER_ALL/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_ALL/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_ALL/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_ALL/test.desc new file mode 100644 index 00000000000..7560eb60c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe028.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPC/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPC/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPC/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPC/test.desc new file mode 100644 index 00000000000..945d5322831 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe028.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/test.desc new file mode 100644 index 00000000000..5c9940eaadc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe028.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_PSO_ALL/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_ALL/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_ALL/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_ALL/test.desc new file mode 100644 index 00000000000..f1a9ae36b2f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPC/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPC/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPC/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPC/test.desc new file mode 100644 index 00000000000..8d220e09ab4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc new file mode 100644 index 00000000000..5f5a3ea7e76 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_RMO_ALL/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_ALL/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_ALL/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_ALL/test.desc new file mode 100644 index 00000000000..3f18ad2851e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPC/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPC/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPC/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPC/test.desc new file mode 100644 index 00000000000..22dd66a4b48 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc new file mode 100644 index 00000000000..e1ec158b08a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/test.desc new file mode 100644 index 00000000000..b13496e5d79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe028.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/test.desc new file mode 100644 index 00000000000..340ca3e6a0d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/test.desc new file mode 100644 index 00000000000..7a9e337a362 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/safe028.c b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/safe028.c new file mode 100644 index 00000000000..3b9ce5bb355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/safe028.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc new file mode 100644 index 00000000000..b6fa4e93ca0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..3006d34520c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe029.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_POWER_ALL/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_ALL/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_ALL/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_ALL/test.desc new file mode 100644 index 00000000000..69cbf6cb112 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPC/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPC/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPC/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPC/test.desc new file mode 100644 index 00000000000..e49ebdfb649 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc new file mode 100644 index 00000000000..ee9677d63f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_PSO_ALL/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_ALL/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_ALL/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_ALL/test.desc new file mode 100644 index 00000000000..4710a4fa3b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPC/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPC/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPC/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPC/test.desc new file mode 100644 index 00000000000..0f6f96da230 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc new file mode 100644 index 00000000000..b2804097c85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_RMO_ALL/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_ALL/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_ALL/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_ALL/test.desc new file mode 100644 index 00000000000..ccd91a1916e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPC/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPC/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPC/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPC/test.desc new file mode 100644 index 00000000000..00e21fc89fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc new file mode 100644 index 00000000000..d28a73ac3b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/test.desc new file mode 100644 index 00000000000..f4ed748f882 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe029.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_TSO_ALL/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_ALL/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_ALL/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_ALL/test.desc new file mode 100644 index 00000000000..99b2d45c8c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPC/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPC/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPC/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPC/test.desc new file mode 100644 index 00000000000..7051d2a6897 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/safe029.c b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/safe029.c new file mode 100644 index 00000000000..3f9c0478ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/safe029.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc new file mode 100644 index 00000000000..97b1dfb9adf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..57b034ee030 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe030.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_POWER_ALL/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_ALL/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_ALL/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_ALL/test.desc new file mode 100644 index 00000000000..3cd75df71ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPC/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPC/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPC/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPC/test.desc new file mode 100644 index 00000000000..a76a8517886 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc new file mode 100644 index 00000000000..5eb67356de3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_PSO_ALL/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_ALL/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_ALL/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_ALL/test.desc new file mode 100644 index 00000000000..93db79407d7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPC/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPC/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPC/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPC/test.desc new file mode 100644 index 00000000000..46c497190cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc new file mode 100644 index 00000000000..b9c725fc71c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_RMO_ALL/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_ALL/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_ALL/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_ALL/test.desc new file mode 100644 index 00000000000..770adef0e45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPC/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPC/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPC/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPC/test.desc new file mode 100644 index 00000000000..5bf04a7c23e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc new file mode 100644 index 00000000000..c3abb79b9cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/test.desc new file mode 100644 index 00000000000..c12df741345 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe030.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_TSO_ALL/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_ALL/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_ALL/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_ALL/test.desc new file mode 100644 index 00000000000..ed5c39a4a50 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPC/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPC/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPC/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPC/test.desc new file mode 100644 index 00000000000..408bd0eab32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/safe030.c b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/safe030.c new file mode 100644 index 00000000000..12df4611ca2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/safe030.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc new file mode 100644 index 00000000000..dd22548ee08 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..48289f28fd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe031.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_POWER_ALL/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_ALL/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_ALL/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_ALL/test.desc new file mode 100644 index 00000000000..0629b668e37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPC/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPC/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPC/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPC/test.desc new file mode 100644 index 00000000000..35521108a43 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc new file mode 100644 index 00000000000..d66d70a4aa2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_PSO_ALL/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_ALL/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_ALL/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_ALL/test.desc new file mode 100644 index 00000000000..7ec7fab5b88 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPC/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPC/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPC/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPC/test.desc new file mode 100644 index 00000000000..585d45cc5df --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc new file mode 100644 index 00000000000..596a15cf9ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_RMO_ALL/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_ALL/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_ALL/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_ALL/test.desc new file mode 100644 index 00000000000..a6391985a23 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPC/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPC/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPC/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPC/test.desc new file mode 100644 index 00000000000..45f4f1b915d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc new file mode 100644 index 00000000000..dd68e1bdfb5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/test.desc new file mode 100644 index 00000000000..803f724af04 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe031.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_TSO_ALL/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_ALL/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_ALL/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_ALL/test.desc new file mode 100644 index 00000000000..87b89adf120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPC/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPC/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPC/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPC/test.desc new file mode 100644 index 00000000000..93ecb193f50 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/safe031.c b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/safe031.c new file mode 100644 index 00000000000..3c089fd2ffc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/safe031.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc new file mode 100644 index 00000000000..d6c9f80de67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..318cd3f2306 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe032.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_POWER_ALL/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_ALL/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_ALL/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_ALL/test.desc new file mode 100644 index 00000000000..e9f1e376132 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPC/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPC/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPC/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPC/test.desc new file mode 100644 index 00000000000..fe6610718c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc new file mode 100644 index 00000000000..392ac327af5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_PSO_ALL/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_ALL/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_ALL/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_ALL/test.desc new file mode 100644 index 00000000000..02294c084b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPC/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPC/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPC/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPC/test.desc new file mode 100644 index 00000000000..9ef3bb412fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc new file mode 100644 index 00000000000..97dd1a7239f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_RMO_ALL/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_ALL/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_ALL/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_ALL/test.desc new file mode 100644 index 00000000000..48300464bf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPC/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPC/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPC/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPC/test.desc new file mode 100644 index 00000000000..e9ef8c6c89d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc new file mode 100644 index 00000000000..3bf59fedd40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/test.desc new file mode 100644 index 00000000000..5a077ccb648 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe032.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_TSO_ALL/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_ALL/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_ALL/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_ALL/test.desc new file mode 100644 index 00000000000..94137b74814 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPC/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPC/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPC/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPC/test.desc new file mode 100644 index 00000000000..b29559353eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/safe032.c b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/safe032.c new file mode 100644 index 00000000000..7fcef1bdb75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/safe032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc new file mode 100644 index 00000000000..a7d458ad3ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..5c9802a12d1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe033.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/test.desc new file mode 100644 index 00000000000..90fbd99d312 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/test.desc new file mode 100644 index 00000000000..12fe792acc8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc new file mode 100644 index 00000000000..5ae72152148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/test.desc new file mode 100644 index 00000000000..6370549b29a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/test.desc new file mode 100644 index 00000000000..9f6d4961e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc new file mode 100644 index 00000000000..ef9b3d1d197 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/test.desc new file mode 100644 index 00000000000..e28fcf76a46 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/test.desc new file mode 100644 index 00000000000..6b438b2adc1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc new file mode 100644 index 00000000000..d125dfb7fed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/test.desc new file mode 100644 index 00000000000..c4d7b57fb7b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe033.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/test.desc new file mode 100644 index 00000000000..9528e38951f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/test.desc new file mode 100644 index 00000000000..9c953e3d3fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/safe033.c b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/safe033.c new file mode 100644 index 00000000000..a22c06579d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/safe033.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc new file mode 100644 index 00000000000..d93bfa51cf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e75035b9e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe034.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_POWER_ALL/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_ALL/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_ALL/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_ALL/test.desc new file mode 100644 index 00000000000..eebc361b9c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPC/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPC/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPC/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPC/test.desc new file mode 100644 index 00000000000..50b2dc18289 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc new file mode 100644 index 00000000000..415d4c05c5b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/test.desc new file mode 100644 index 00000000000..ecefd4b0bc8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/test.desc new file mode 100644 index 00000000000..b3cef114f79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc new file mode 100644 index 00000000000..2bef6d52880 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/test.desc new file mode 100644 index 00000000000..68547ce4b5c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/test.desc new file mode 100644 index 00000000000..55274f8b885 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc new file mode 100644 index 00000000000..5bbc7091245 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/test.desc new file mode 100644 index 00000000000..80c80698c02 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe034.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/test.desc new file mode 100644 index 00000000000..ceb84d690b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/test.desc new file mode 100644 index 00000000000..be63e7406e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/safe034.c b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/safe034.c new file mode 100644 index 00000000000..702b87991f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/safe034.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc new file mode 100644 index 00000000000..13b8e42b022 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e5242e318e1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe035.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_POWER_ALL/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_ALL/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_ALL/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_ALL/test.desc new file mode 100644 index 00000000000..d3ab68ed8c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPC/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPC/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPC/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPC/test.desc new file mode 100644 index 00000000000..9a3cdb18040 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc new file mode 100644 index 00000000000..92256947154 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_PSO_ALL/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_ALL/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_ALL/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_ALL/test.desc new file mode 100644 index 00000000000..ed18b4c46c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPC/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPC/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPC/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPC/test.desc new file mode 100644 index 00000000000..347857a2b34 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc new file mode 100644 index 00000000000..e372bf2bb7b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_RMO_ALL/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_ALL/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_ALL/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_ALL/test.desc new file mode 100644 index 00000000000..47350e18f17 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPC/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPC/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPC/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPC/test.desc new file mode 100644 index 00000000000..5e14638a78b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc new file mode 100644 index 00000000000..067eddb87e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/test.desc new file mode 100644 index 00000000000..82294ac2fb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe035.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_TSO_ALL/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_ALL/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_ALL/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_ALL/test.desc new file mode 100644 index 00000000000..4d49e9a4b60 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPC/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPC/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPC/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPC/test.desc new file mode 100644 index 00000000000..1e32a5717f5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/safe035.c b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/safe035.c new file mode 100644 index 00000000000..fe6ad1c9631 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/safe035.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc new file mode 100644 index 00000000000..4b5c5c80e5d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..d935594848c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe036.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_POWER_ALL/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_ALL/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_ALL/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_ALL/test.desc new file mode 100644 index 00000000000..b0fc4763e33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPC/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPC/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPC/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPC/test.desc new file mode 100644 index 00000000000..a5e652a72cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc new file mode 100644 index 00000000000..c4ca5328029 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_PSO_ALL/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_ALL/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_ALL/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_ALL/test.desc new file mode 100644 index 00000000000..8210364ea7b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPC/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPC/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPC/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPC/test.desc new file mode 100644 index 00000000000..cb8fe6db8c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc new file mode 100644 index 00000000000..4330c62ffeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_RMO_ALL/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_ALL/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_ALL/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_ALL/test.desc new file mode 100644 index 00000000000..3d2b5462ddd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPC/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPC/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPC/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPC/test.desc new file mode 100644 index 00000000000..2af3db35a67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc new file mode 100644 index 00000000000..63b3c1bdc70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/test.desc new file mode 100644 index 00000000000..42aefd81f73 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe036.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_TSO_ALL/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_ALL/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_ALL/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_ALL/test.desc new file mode 100644 index 00000000000..e3ff5b04c40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPC/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPC/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPC/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPC/test.desc new file mode 100644 index 00000000000..99623014616 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/safe036.c b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/safe036.c new file mode 100644 index 00000000000..9e140e44c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/safe036.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc new file mode 100644 index 00000000000..5b311991045 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e42dcc09292 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe037.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_POWER_ALL/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_ALL/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_ALL/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_ALL/test.desc new file mode 100644 index 00000000000..aa501c30e11 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPC/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPC/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPC/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPC/test.desc new file mode 100644 index 00000000000..b75b6205fe0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc new file mode 100644 index 00000000000..73f22d96d93 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/test.desc new file mode 100644 index 00000000000..efb88530eb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/test.desc new file mode 100644 index 00000000000..56e32508412 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc new file mode 100644 index 00000000000..7a4729ed630 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/test.desc new file mode 100644 index 00000000000..b1762f14c02 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/test.desc new file mode 100644 index 00000000000..5db314f5951 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc new file mode 100644 index 00000000000..4c462f457f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/test.desc new file mode 100644 index 00000000000..568b2b1739d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe037.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/test.desc new file mode 100644 index 00000000000..670f49923cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/test.desc new file mode 100644 index 00000000000..d95eb897d2e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/safe037.c b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/safe037.c new file mode 100644 index 00000000000..bd7cfc13a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/safe037.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc new file mode 100644 index 00000000000..c6b48e545c9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..97172e8ef1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe038.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_POWER_ALL/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_ALL/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_ALL/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_ALL/test.desc new file mode 100644 index 00000000000..c41a1fe9ae2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPC/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPC/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPC/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPC/test.desc new file mode 100644 index 00000000000..d702d858245 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc new file mode 100644 index 00000000000..e8b68b6925e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/test.desc new file mode 100644 index 00000000000..7a33e905e8a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/test.desc new file mode 100644 index 00000000000..4c15acfd851 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc new file mode 100644 index 00000000000..b9b71d8c152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/test.desc new file mode 100644 index 00000000000..9c86af97b34 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/test.desc new file mode 100644 index 00000000000..64973b1012c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc new file mode 100644 index 00000000000..54926a2cb2b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/test.desc new file mode 100644 index 00000000000..d4f2e10039e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe038.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/test.desc new file mode 100644 index 00000000000..c855d66fff8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/test.desc new file mode 100644 index 00000000000..11a40e95310 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/safe038.c b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/safe038.c new file mode 100644 index 00000000000..d63b28464e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/safe038.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc new file mode 100644 index 00000000000..4567ce9bad9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe038.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..c68d152f568 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe039.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_POWER_ALL/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_ALL/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_ALL/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_ALL/test.desc new file mode 100644 index 00000000000..bddd4e99957 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPC/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPC/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPC/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPC/test.desc new file mode 100644 index 00000000000..b3fb9f7326f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc new file mode 100644 index 00000000000..3bc9470b4f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_PSO_ALL/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_ALL/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_ALL/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_ALL/test.desc new file mode 100644 index 00000000000..23a065d42d5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPC/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPC/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPC/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPC/test.desc new file mode 100644 index 00000000000..5c47a8bf71d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc new file mode 100644 index 00000000000..24f7c6976b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_RMO_ALL/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_ALL/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_ALL/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_ALL/test.desc new file mode 100644 index 00000000000..28b8f50735c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPC/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPC/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPC/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPC/test.desc new file mode 100644 index 00000000000..061808a9a6b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc new file mode 100644 index 00000000000..54f3ba07dfc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/test.desc new file mode 100644 index 00000000000..8419eda6858 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe039.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_TSO_ALL/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_ALL/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_ALL/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_ALL/test.desc new file mode 100644 index 00000000000..17c65a48aeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPC/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPC/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPC/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPC/test.desc new file mode 100644 index 00000000000..9159aa174aa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/safe039.c b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/safe039.c new file mode 100644 index 00000000000..5946e0f50ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/safe039.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc new file mode 100644 index 00000000000..e26b8c655ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe039.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..f9dd1f8e5cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe040.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_POWER_ALL/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_ALL/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_ALL/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_ALL/test.desc new file mode 100644 index 00000000000..ef662625062 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPC/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPC/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPC/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPC/test.desc new file mode 100644 index 00000000000..2e4f6339a0a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc new file mode 100644 index 00000000000..f555c310cf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_PSO_ALL/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_ALL/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_ALL/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_ALL/test.desc new file mode 100644 index 00000000000..a049e2fb13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPC/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPC/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPC/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPC/test.desc new file mode 100644 index 00000000000..1a2043eb752 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc new file mode 100644 index 00000000000..8abefe61147 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_RMO_ALL/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_ALL/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_ALL/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_ALL/test.desc new file mode 100644 index 00000000000..04b6e3d5900 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPC/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPC/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPC/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPC/test.desc new file mode 100644 index 00000000000..c7e5a145b82 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc new file mode 100644 index 00000000000..0867f32673e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/test.desc new file mode 100644 index 00000000000..80d9db581b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe040.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_TSO_ALL/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_ALL/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_ALL/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_ALL/test.desc new file mode 100644 index 00000000000..536e69a1a96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPC/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPC/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPC/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPC/test.desc new file mode 100644 index 00000000000..4ce0b3d42bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/safe040.c b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/safe040.c new file mode 100644 index 00000000000..d1881b96c33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/safe040.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc new file mode 100644 index 00000000000..0364a86bdd1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe040.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..4a4a828c7ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe041.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_POWER_ALL/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_ALL/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_ALL/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_ALL/test.desc new file mode 100644 index 00000000000..7d4e57d1cdc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPC/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPC/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPC/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPC/test.desc new file mode 100644 index 00000000000..67e797952fb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc new file mode 100644 index 00000000000..62deabb7f0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_PSO_ALL/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_ALL/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_ALL/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_ALL/test.desc new file mode 100644 index 00000000000..833d7ce6e4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPC/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPC/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPC/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPC/test.desc new file mode 100644 index 00000000000..18c178d7902 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc new file mode 100644 index 00000000000..cf4bb68e243 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_RMO_ALL/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_ALL/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_ALL/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_ALL/test.desc new file mode 100644 index 00000000000..a94f4fc51a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPC/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPC/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPC/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPC/test.desc new file mode 100644 index 00000000000..c76c8577c30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc new file mode 100644 index 00000000000..490b0f16620 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/test.desc new file mode 100644 index 00000000000..a9fd0f7dce8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe041.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_TSO_ALL/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_ALL/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_ALL/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_ALL/test.desc new file mode 100644 index 00000000000..69eb49fcd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPC/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPC/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPC/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPC/test.desc new file mode 100644 index 00000000000..a2772b5c7d1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/safe041.c b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/safe041.c new file mode 100644 index 00000000000..fe510ff63f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/safe041.c @@ -0,0 +1,71 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc new file mode 100644 index 00000000000..773e6cc5225 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe041.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1d3ebc68749 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe042.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_POWER_ALL/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_ALL/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_ALL/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_ALL/test.desc new file mode 100644 index 00000000000..8f3b8786005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPC/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPC/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPC/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPC/test.desc new file mode 100644 index 00000000000..81969029151 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc new file mode 100644 index 00000000000..80b711aba32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_PSO_ALL/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_ALL/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_ALL/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_ALL/test.desc new file mode 100644 index 00000000000..3ba19f72a0d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPC/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPC/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPC/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPC/test.desc new file mode 100644 index 00000000000..51449fa2ec9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc new file mode 100644 index 00000000000..fcb16eeac00 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_RMO_ALL/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_ALL/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_ALL/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_ALL/test.desc new file mode 100644 index 00000000000..16815bf1e3d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPC/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPC/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPC/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPC/test.desc new file mode 100644 index 00000000000..eda60b44562 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc new file mode 100644 index 00000000000..523a6811f77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/test.desc new file mode 100644 index 00000000000..fab35dc2925 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe042.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_TSO_ALL/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_ALL/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_ALL/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_ALL/test.desc new file mode 100644 index 00000000000..24f9dab6a25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPC/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPC/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPC/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPC/test.desc new file mode 100644 index 00000000000..6749d2deb74 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/safe042.c b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/safe042.c new file mode 100644 index 00000000000..49ee7706c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/safe042.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc new file mode 100644 index 00000000000..82e55f3f543 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe042.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..8a099f285de --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe043.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_POWER_ALL/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_ALL/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_ALL/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_ALL/test.desc new file mode 100644 index 00000000000..8f838a13a08 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPC/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPC/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPC/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPC/test.desc new file mode 100644 index 00000000000..3b33660b231 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc new file mode 100644 index 00000000000..9daaba4aa7a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_PSO_ALL/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_ALL/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_ALL/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_ALL/test.desc new file mode 100644 index 00000000000..13d5c8a230d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPC/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPC/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPC/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPC/test.desc new file mode 100644 index 00000000000..1e89bde9a9c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc new file mode 100644 index 00000000000..b57bc7ccac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_RMO_ALL/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_ALL/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_ALL/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_ALL/test.desc new file mode 100644 index 00000000000..856b4d19d66 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPC/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPC/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPC/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPC/test.desc new file mode 100644 index 00000000000..13c8f09c6e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc new file mode 100644 index 00000000000..713848ac72f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/test.desc new file mode 100644 index 00000000000..fdc32ee863f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe043.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/test.desc new file mode 100644 index 00000000000..d56bd5e8b30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/test.desc new file mode 100644 index 00000000000..592018e4bcf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/safe043.c b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/safe043.c new file mode 100644 index 00000000000..95db9064ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/safe043.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc new file mode 100644 index 00000000000..13a75e6de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe043.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b36ecba4fb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe044.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_POWER_ALL/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_ALL/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_ALL/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_ALL/test.desc new file mode 100644 index 00000000000..ab18df533b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe044.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPC/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPC/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPC/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPC/test.desc new file mode 100644 index 00000000000..44cd26fbe39 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe044.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/test.desc new file mode 100644 index 00000000000..fd824ec762f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe044.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/test.desc new file mode 100644 index 00000000000..f189f8d406b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe044.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc new file mode 100644 index 00000000000..8f1fb25ba0a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe044.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/test.desc new file mode 100644 index 00000000000..e3207db8ff1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe044.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/test.desc new file mode 100644 index 00000000000..568c1b4828e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe044.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc new file mode 100644 index 00000000000..bfeb13c910b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe044.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/test.desc new file mode 100644 index 00000000000..817f8d15051 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe044.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/test.desc new file mode 100644 index 00000000000..4c686d56dca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe044.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/test.desc new file mode 100644 index 00000000000..936c16f2ce7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe044.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/safe044.c b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/safe044.c new file mode 100644 index 00000000000..b9a0e3761c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/safe044.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&x + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc new file mode 100644 index 00000000000..b8549ccc123 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe044.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..777bc02ebfc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe045.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_POWER_ALL/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_ALL/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_ALL/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_ALL/test.desc new file mode 100644 index 00000000000..6e1a1d78f27 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPC/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPC/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPC/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPC/test.desc new file mode 100644 index 00000000000..e4be7ffae2d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc new file mode 100644 index 00000000000..595fa825d55 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/test.desc new file mode 100644 index 00000000000..e0a560b3fc3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/test.desc new file mode 100644 index 00000000000..3d872be6726 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc new file mode 100644 index 00000000000..87f83241863 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/test.desc new file mode 100644 index 00000000000..70f7b2032fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/test.desc new file mode 100644 index 00000000000..4367205d7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc new file mode 100644 index 00000000000..ea3798d73fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/test.desc new file mode 100644 index 00000000000..0e238f49e93 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe045.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/test.desc new file mode 100644 index 00000000000..c7e674e01fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/test.desc new file mode 100644 index 00000000000..a02cc185119 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/safe045.c b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/safe045.c new file mode 100644 index 00000000000..18c53fac9bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/safe045.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc new file mode 100644 index 00000000000..98f9b5b93cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe045.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1eb406be8e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe046.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_POWER_ALL/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_ALL/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_ALL/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_ALL/test.desc new file mode 100644 index 00000000000..7f03c7fe3ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPC/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPC/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPC/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPC/test.desc new file mode 100644 index 00000000000..a11cddeff20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc new file mode 100644 index 00000000000..848f1e09f44 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_PSO_ALL/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_ALL/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_ALL/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_ALL/test.desc new file mode 100644 index 00000000000..bf8f2676dbb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPC/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPC/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPC/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPC/test.desc new file mode 100644 index 00000000000..f2c921df2a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc new file mode 100644 index 00000000000..76664c1d16d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_RMO_ALL/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_ALL/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_ALL/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_ALL/test.desc new file mode 100644 index 00000000000..70eb7295cc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPC/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPC/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPC/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPC/test.desc new file mode 100644 index 00000000000..ee900c75c34 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc new file mode 100644 index 00000000000..0741d1a42b1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/test.desc new file mode 100644 index 00000000000..016371ac476 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe046.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_TSO_ALL/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_ALL/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_ALL/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_ALL/test.desc new file mode 100644 index 00000000000..853285b1320 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPC/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPC/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPC/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPC/test.desc new file mode 100644 index 00000000000..49cdf54a119 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/safe046.c b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/safe046.c new file mode 100644 index 00000000000..b47a4870561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/safe046.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc new file mode 100644 index 00000000000..765bd3422d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe046.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..0b05ce30b75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe047.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_POWER_ALL/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_ALL/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_ALL/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_ALL/test.desc new file mode 100644 index 00000000000..b23e4bf3db8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPC/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPC/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPC/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPC/test.desc new file mode 100644 index 00000000000..dc0c494256c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc new file mode 100644 index 00000000000..2bdbc7118e6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_PSO_ALL/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_ALL/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_ALL/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_ALL/test.desc new file mode 100644 index 00000000000..afa7186170f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPC/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPC/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPC/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPC/test.desc new file mode 100644 index 00000000000..d4a65aa4fb3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc new file mode 100644 index 00000000000..6184b5a9e41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_RMO_ALL/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_ALL/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_ALL/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_ALL/test.desc new file mode 100644 index 00000000000..f42c208ef85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPC/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPC/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPC/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPC/test.desc new file mode 100644 index 00000000000..d0ab0a50383 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc new file mode 100644 index 00000000000..563b5b57fa7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/test.desc new file mode 100644 index 00000000000..9aede34d073 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe047.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_TSO_ALL/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_ALL/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_ALL/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_ALL/test.desc new file mode 100644 index 00000000000..3acd4020a76 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPC/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPC/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPC/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPC/test.desc new file mode 100644 index 00000000000..647a45e5776 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/safe047.c b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/safe047.c new file mode 100644 index 00000000000..a59c56c695e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/safe047.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc new file mode 100644 index 00000000000..9c72aac8ecf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe047.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..c414091baad --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe048.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_POWER_ALL/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_ALL/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_ALL/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_ALL/test.desc new file mode 100644 index 00000000000..545b69aacd4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPC/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPC/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPC/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPC/test.desc new file mode 100644 index 00000000000..518901796d6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc new file mode 100644 index 00000000000..40daa6ac1f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_PSO_ALL/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_ALL/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_ALL/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_ALL/test.desc new file mode 100644 index 00000000000..a6d4442d423 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPC/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPC/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPC/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPC/test.desc new file mode 100644 index 00000000000..9d4af344407 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc new file mode 100644 index 00000000000..b5f09732ae6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_RMO_ALL/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_ALL/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_ALL/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_ALL/test.desc new file mode 100644 index 00000000000..c29aec0909e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPC/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPC/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPC/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPC/test.desc new file mode 100644 index 00000000000..a35e8b4b0f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc new file mode 100644 index 00000000000..a5bdf39478d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/test.desc new file mode 100644 index 00000000000..98451667ba6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe048.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_TSO_ALL/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_ALL/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_ALL/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_ALL/test.desc new file mode 100644 index 00000000000..4440e66f82a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPC/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPC/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPC/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPC/test.desc new file mode 100644 index 00000000000..23a86f453af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/safe048.c b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/safe048.c new file mode 100644 index 00000000000..e49d6e4e77f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/safe048.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc new file mode 100644 index 00000000000..fb3437ea4d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe048.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..ba28104bc9c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe049.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_POWER_ALL/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_ALL/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_ALL/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_ALL/test.desc new file mode 100644 index 00000000000..fb04250c91d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe049.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPC/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPC/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPC/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPC/test.desc new file mode 100644 index 00000000000..ae5473d82cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe049.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_PSO_ALL/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_ALL/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_ALL/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_ALL/test.desc new file mode 100644 index 00000000000..3ccd6824ad8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe049.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPC/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPC/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPC/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPC/test.desc new file mode 100644 index 00000000000..d560f55e9ce --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe049.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc new file mode 100644 index 00000000000..c2562c5270d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe049.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_RMO_ALL/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_ALL/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_ALL/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_ALL/test.desc new file mode 100644 index 00000000000..19839d09de2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe049.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPC/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPC/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPC/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPC/test.desc new file mode 100644 index 00000000000..aed2e1205c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe049.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc new file mode 100644 index 00000000000..cbe3374802e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe049.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/test.desc new file mode 100644 index 00000000000..e10c3b7557b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe049.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/test.desc new file mode 100644 index 00000000000..e058e40bc6f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe049.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/test.desc new file mode 100644 index 00000000000..bc0c4ed2cb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe049.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/safe049.c b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/safe049.c new file mode 100644 index 00000000000..d09ef074f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/safe049.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc new file mode 100644 index 00000000000..b232630c5e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe049.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..a5a76ed05d7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe050.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_POWER_ALL/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_ALL/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_ALL/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_ALL/test.desc new file mode 100644 index 00000000000..0f02bb08985 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPC/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPC/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPC/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPC/test.desc new file mode 100644 index 00000000000..5c40b6279c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc new file mode 100644 index 00000000000..d33d5da1465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_PSO_ALL/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_ALL/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_ALL/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_ALL/test.desc new file mode 100644 index 00000000000..f73103f8fef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPC/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPC/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPC/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPC/test.desc new file mode 100644 index 00000000000..a0f2243989d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc new file mode 100644 index 00000000000..53a59b93714 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_RMO_ALL/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_ALL/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_ALL/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_ALL/test.desc new file mode 100644 index 00000000000..b75c0a855e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPC/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPC/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPC/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPC/test.desc new file mode 100644 index 00000000000..3b647433254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc new file mode 100644 index 00000000000..06594a3e6d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/test.desc new file mode 100644 index 00000000000..602ddec9c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe050.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/test.desc new file mode 100644 index 00000000000..30fa64ccd72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/test.desc new file mode 100644 index 00000000000..a7e28abc43f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/safe050.c b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/safe050.c new file mode 100644 index 00000000000..843de95de03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/safe050.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc new file mode 100644 index 00000000000..b5ce877493c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe050.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..4707e0d8358 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe051.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_POWER_ALL/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_ALL/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_ALL/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_ALL/test.desc new file mode 100644 index 00000000000..125ceeeb21c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe051.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPC/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPC/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPC/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPC/test.desc new file mode 100644 index 00000000000..459432a6b94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe051.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_PSO_ALL/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_ALL/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_ALL/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_ALL/test.desc new file mode 100644 index 00000000000..41284c60ce1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe051.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPC/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPC/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPC/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPC/test.desc new file mode 100644 index 00000000000..c309e7c76ad --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe051.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc new file mode 100644 index 00000000000..e073626684c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe051.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_RMO_ALL/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_ALL/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_ALL/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_ALL/test.desc new file mode 100644 index 00000000000..ed2e812d467 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe051.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPC/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPC/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPC/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPC/test.desc new file mode 100644 index 00000000000..76a5e01df39 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe051.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc new file mode 100644 index 00000000000..2e3582a67ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe051.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/test.desc new file mode 100644 index 00000000000..9c025c95846 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe051.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/test.desc new file mode 100644 index 00000000000..a0d7d0f5b8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe051.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/test.desc new file mode 100644 index 00000000000..ae172427959 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe051.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/safe051.c b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/safe051.c new file mode 100644 index 00000000000..9480c34c25f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/safe051.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc new file mode 100644 index 00000000000..c6bebff354a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe051.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..e2fdb7fb2b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe052.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_POWER_ALL/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_ALL/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_ALL/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_ALL/test.desc new file mode 100644 index 00000000000..005bd413f19 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe052.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPC/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPC/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPC/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPC/test.desc new file mode 100644 index 00000000000..36afd1fd7a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe052.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/test.desc new file mode 100644 index 00000000000..a24aa5e9e3a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe052.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_PSO_ALL/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_ALL/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_ALL/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_ALL/test.desc new file mode 100644 index 00000000000..bfe0e839f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe052.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPC/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPC/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPC/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPC/test.desc new file mode 100644 index 00000000000..1398d1b0db5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe052.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc new file mode 100644 index 00000000000..075a422bb95 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe052.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_RMO_ALL/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_ALL/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_ALL/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_ALL/test.desc new file mode 100644 index 00000000000..bb324c09f8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe052.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPC/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPC/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPC/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPC/test.desc new file mode 100644 index 00000000000..b457db2c63e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe052.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc new file mode 100644 index 00000000000..af946510e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe052.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/test.desc new file mode 100644 index 00000000000..407b651dd16 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe052.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/test.desc new file mode 100644 index 00000000000..ed50ce31cd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe052.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/test.desc new file mode 100644 index 00000000000..2f084e6c688 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe052.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/safe052.c b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/safe052.c new file mode 100644 index 00000000000..ec69261e6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/safe052.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc new file mode 100644 index 00000000000..edf23906b2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe052.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..fbae48dece5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe053.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_POWER_ALL/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_ALL/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_ALL/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_ALL/test.desc new file mode 100644 index 00000000000..654c40c36ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPC/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPC/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPC/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPC/test.desc new file mode 100644 index 00000000000..b7edaef7994 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc new file mode 100644 index 00000000000..acf70c6ca7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_PSO_ALL/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_ALL/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_ALL/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_ALL/test.desc new file mode 100644 index 00000000000..ba2939f79b1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPC/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPC/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPC/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPC/test.desc new file mode 100644 index 00000000000..4fe6b0e18a0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc new file mode 100644 index 00000000000..f30d7b3bce8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_RMO_ALL/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_ALL/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_ALL/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_ALL/test.desc new file mode 100644 index 00000000000..ea5e6d6d099 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPC/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPC/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPC/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPC/test.desc new file mode 100644 index 00000000000..485ad979617 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc new file mode 100644 index 00000000000..211d233a6f9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/test.desc new file mode 100644 index 00000000000..3208604f169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe053.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_TSO_ALL/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_ALL/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_ALL/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_ALL/test.desc new file mode 100644 index 00000000000..5215be90c89 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPC/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPC/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPC/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPC/test.desc new file mode 100644 index 00000000000..b7bf9673210 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/safe053.c b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/safe053.c new file mode 100644 index 00000000000..3d05aeb4bf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/safe053.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc new file mode 100644 index 00000000000..3b682102df4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe053.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..c8492dc0b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe054.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_POWER_ALL/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_ALL/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_ALL/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_ALL/test.desc new file mode 100644 index 00000000000..e7b9731ed33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPC/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPC/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPC/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPC/test.desc new file mode 100644 index 00000000000..2fb7c4207cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc new file mode 100644 index 00000000000..0e18fc96cfc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_PSO_ALL/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_ALL/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_ALL/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_ALL/test.desc new file mode 100644 index 00000000000..e4b01f75af9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPC/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPC/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPC/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPC/test.desc new file mode 100644 index 00000000000..2b67d0217c5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc new file mode 100644 index 00000000000..3bdee45ce48 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_RMO_ALL/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_ALL/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_ALL/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_ALL/test.desc new file mode 100644 index 00000000000..34392536f60 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPC/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPC/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPC/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPC/test.desc new file mode 100644 index 00000000000..6d22b20b751 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc new file mode 100644 index 00000000000..136b2acdb42 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/test.desc new file mode 100644 index 00000000000..5f9098d29c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe054.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/test.desc new file mode 100644 index 00000000000..b5af028d9a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/test.desc new file mode 100644 index 00000000000..c8319bb1e98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/safe054.c b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/safe054.c new file mode 100644 index 00000000000..9ee131390e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/safe054.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc new file mode 100644 index 00000000000..a60a0100c0f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe054.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..15a50f99420 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe055.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_POWER_ALL/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_ALL/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_ALL/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_ALL/test.desc new file mode 100644 index 00000000000..b27272abbcf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe055.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPC/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPC/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPC/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPC/test.desc new file mode 100644 index 00000000000..1c06e2290b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe055.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/test.desc new file mode 100644 index 00000000000..9431d87a222 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe055.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_PSO_ALL/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_ALL/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_ALL/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_ALL/test.desc new file mode 100644 index 00000000000..f64efb7d588 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe055.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPC/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPC/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPC/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPC/test.desc new file mode 100644 index 00000000000..cb230c25910 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe055.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc new file mode 100644 index 00000000000..55653558df4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe055.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_RMO_ALL/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_ALL/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_ALL/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_ALL/test.desc new file mode 100644 index 00000000000..a0b95cbb486 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe055.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPC/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPC/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPC/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPC/test.desc new file mode 100644 index 00000000000..2f51cd54423 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe055.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc new file mode 100644 index 00000000000..8d63c678041 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe055.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/test.desc new file mode 100644 index 00000000000..e5ff4459702 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe055.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_TSO_ALL/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_ALL/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_ALL/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_ALL/test.desc new file mode 100644 index 00000000000..489d0a92a50 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe055.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPC/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPC/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPC/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPC/test.desc new file mode 100644 index 00000000000..6f17440a97a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe055.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/safe055.c b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/safe055.c new file mode 100644 index 00000000000..ff0e3a0e18e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/safe055.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc new file mode 100644 index 00000000000..641dec4b057 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe055.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e1498a84405 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe056.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_POWER_ALL/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_ALL/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_ALL/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_ALL/test.desc new file mode 100644 index 00000000000..51b9a2c5f88 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe056.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPC/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPC/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPC/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPC/test.desc new file mode 100644 index 00000000000..fb4c12bf1f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe056.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/test.desc new file mode 100644 index 00000000000..15d6d1ef62d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe056.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_PSO_ALL/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_ALL/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_ALL/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_ALL/test.desc new file mode 100644 index 00000000000..6adab39d4fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe056.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPC/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPC/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPC/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPC/test.desc new file mode 100644 index 00000000000..f8c84aacdc8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe056.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc new file mode 100644 index 00000000000..0f9cf8eb560 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe056.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_RMO_ALL/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_ALL/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_ALL/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_ALL/test.desc new file mode 100644 index 00000000000..c832ab05805 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe056.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPC/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPC/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPC/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPC/test.desc new file mode 100644 index 00000000000..66d84a3bd9a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe056.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc new file mode 100644 index 00000000000..bbc8b3a75fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe056.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/test.desc new file mode 100644 index 00000000000..14104a631c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe056.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_TSO_ALL/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_ALL/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_ALL/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_ALL/test.desc new file mode 100644 index 00000000000..346327b8e13 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe056.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPC/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPC/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPC/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPC/test.desc new file mode 100644 index 00000000000..fad74fc8338 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe056.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/safe056.c b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/safe056.c new file mode 100644 index 00000000000..515e9fc3664 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/safe056.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc new file mode 100644 index 00000000000..797afc6043e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe056.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..0f3a1a363fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe057.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_POWER_ALL/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_ALL/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_ALL/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_ALL/test.desc new file mode 100644 index 00000000000..3c463f93534 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe057.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPC/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPC/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPC/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPC/test.desc new file mode 100644 index 00000000000..2e66ed027fb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe057.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/test.desc new file mode 100644 index 00000000000..8b78bb29674 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe057.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/test.desc new file mode 100644 index 00000000000..dcc8547b803 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe057.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc new file mode 100644 index 00000000000..61ff1b6eda9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe057.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/test.desc new file mode 100644 index 00000000000..26080aee431 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe057.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/test.desc new file mode 100644 index 00000000000..007d244d32a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe057.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc new file mode 100644 index 00000000000..69e928b896c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe057.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/test.desc new file mode 100644 index 00000000000..4738864c35e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe057.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/test.desc new file mode 100644 index 00000000000..3510305d71e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe057.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/test.desc new file mode 100644 index 00000000000..ac8850c0b43 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe057.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/safe057.c b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/safe057.c new file mode 100644 index 00000000000..683f9e31254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/safe057.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc new file mode 100644 index 00000000000..7622d46043d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe057.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..f557cc9d1c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe058.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_POWER_ALL/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_ALL/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_ALL/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_ALL/test.desc new file mode 100644 index 00000000000..28d86a18e9d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPC/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPC/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPC/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPC/test.desc new file mode 100644 index 00000000000..9b0e93f757e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc new file mode 100644 index 00000000000..3bfae6bc80f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_PSO_ALL/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_ALL/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_ALL/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_ALL/test.desc new file mode 100644 index 00000000000..fa6abeebff1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPC/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPC/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPC/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPC/test.desc new file mode 100644 index 00000000000..75eda76a6da --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc new file mode 100644 index 00000000000..8cea446310a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_RMO_ALL/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_ALL/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_ALL/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_ALL/test.desc new file mode 100644 index 00000000000..62dc36415c5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPC/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPC/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPC/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPC/test.desc new file mode 100644 index 00000000000..6a7de660a51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc new file mode 100644 index 00000000000..252be17105d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/test.desc new file mode 100644 index 00000000000..997245c5585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe058.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_TSO_ALL/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_ALL/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_ALL/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_ALL/test.desc new file mode 100644 index 00000000000..889d72e875e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPC/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPC/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPC/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPC/test.desc new file mode 100644 index 00000000000..7e565db7d66 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/safe058.c b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/safe058.c new file mode 100644 index 00000000000..ecd5bd320ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/safe058.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc new file mode 100644 index 00000000000..d1de933bb5d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe058.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..5d141e6a081 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe059.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_POWER_ALL/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_ALL/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_ALL/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_ALL/test.desc new file mode 100644 index 00000000000..2d40809d4dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPC/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPC/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPC/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPC/test.desc new file mode 100644 index 00000000000..3db3932d7cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc new file mode 100644 index 00000000000..d7921ba71ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_PSO_ALL/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_ALL/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_ALL/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_ALL/test.desc new file mode 100644 index 00000000000..4bd5928664c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPC/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPC/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPC/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPC/test.desc new file mode 100644 index 00000000000..62a7fca8ef1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc new file mode 100644 index 00000000000..4cdb6fd93c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_RMO_ALL/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_ALL/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_ALL/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_ALL/test.desc new file mode 100644 index 00000000000..384f6ca70cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPC/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPC/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPC/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPC/test.desc new file mode 100644 index 00000000000..1c98a9a7833 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc new file mode 100644 index 00000000000..70d9835dd6a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/test.desc new file mode 100644 index 00000000000..5cb6654b446 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe059.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_TSO_ALL/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_ALL/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_ALL/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_ALL/test.desc new file mode 100644 index 00000000000..0e208e3cc44 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPC/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPC/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPC/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPC/test.desc new file mode 100644 index 00000000000..39508602f00 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/safe059.c b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/safe059.c new file mode 100644 index 00000000000..d641922004a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/safe059.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc new file mode 100644 index 00000000000..7ecc77d712a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe059.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..197b6ac5280 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe060.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_POWER_ALL/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_ALL/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_ALL/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_ALL/test.desc new file mode 100644 index 00000000000..e283a70c161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPC/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPC/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPC/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPC/test.desc new file mode 100644 index 00000000000..43bf6fbfd69 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc new file mode 100644 index 00000000000..75e06cf4eaf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_PSO_ALL/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_ALL/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_ALL/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_ALL/test.desc new file mode 100644 index 00000000000..c29a200ff56 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPC/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPC/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPC/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPC/test.desc new file mode 100644 index 00000000000..6fe3bd51724 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc new file mode 100644 index 00000000000..458bde00692 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_RMO_ALL/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_ALL/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_ALL/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_ALL/test.desc new file mode 100644 index 00000000000..fbf4895735d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPC/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPC/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPC/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPC/test.desc new file mode 100644 index 00000000000..b762b5d602f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc new file mode 100644 index 00000000000..21de731f8b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/test.desc new file mode 100644 index 00000000000..354a752d77e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe060.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_TSO_ALL/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_ALL/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_ALL/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_ALL/test.desc new file mode 100644 index 00000000000..69a380519ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPC/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPC/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPC/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPC/test.desc new file mode 100644 index 00000000000..7f9d5291fe8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/safe060.c b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/safe060.c new file mode 100644 index 00000000000..a1036facb30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/safe060.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p3_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc new file mode 100644 index 00000000000..7c8365300c5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe060.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e4c9c175762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe061.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/test.desc new file mode 100644 index 00000000000..6ba04b1f599 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/test.desc new file mode 100644 index 00000000000..2121d03ae5b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc new file mode 100644 index 00000000000..43cca2937a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/test.desc new file mode 100644 index 00000000000..75fc051269c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/test.desc new file mode 100644 index 00000000000..289cd99f6a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc new file mode 100644 index 00000000000..8b0d8adcd10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/test.desc new file mode 100644 index 00000000000..a8c98b17218 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/test.desc new file mode 100644 index 00000000000..a8c014e87ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc new file mode 100644 index 00000000000..d591807ac81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/test.desc new file mode 100644 index 00000000000..e5e0551a1ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe061.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/test.desc new file mode 100644 index 00000000000..1773690891e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/test.desc new file mode 100644 index 00000000000..11a4cd9f1ac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/safe061.c b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/safe061.c new file mode 100644 index 00000000000..02b219faaff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/safe061.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc new file mode 100644 index 00000000000..a3a22e69819 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe061.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..0f21af9fe6b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe062.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_POWER_ALL/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_ALL/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_ALL/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_ALL/test.desc new file mode 100644 index 00000000000..59e5df1ba5c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPC/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPC/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPC/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPC/test.desc new file mode 100644 index 00000000000..3a647029d94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc new file mode 100644 index 00000000000..252cce8d8a0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_PSO_ALL/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_ALL/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_ALL/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_ALL/test.desc new file mode 100644 index 00000000000..133944ddf1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPC/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPC/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPC/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPC/test.desc new file mode 100644 index 00000000000..2ad05cb3946 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc new file mode 100644 index 00000000000..bf0fce3d0d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_RMO_ALL/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_ALL/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_ALL/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_ALL/test.desc new file mode 100644 index 00000000000..911150fe3ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPC/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPC/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPC/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPC/test.desc new file mode 100644 index 00000000000..81c305ad00a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc new file mode 100644 index 00000000000..379e7035ca9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/test.desc new file mode 100644 index 00000000000..bde016468ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe062.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_TSO_ALL/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_ALL/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_ALL/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_ALL/test.desc new file mode 100644 index 00000000000..5a7b5ea9bd1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPC/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPC/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPC/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPC/test.desc new file mode 100644 index 00000000000..2afc8b4d793 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/safe062.c b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/safe062.c new file mode 100644 index 00000000000..6c20ad74834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/safe062.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = 1; + y = __unbuffered_p3_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc new file mode 100644 index 00000000000..3432c8edcdb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe062.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..4ffc1c2981a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe063.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_POWER_ALL/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_ALL/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_ALL/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_ALL/test.desc new file mode 100644 index 00000000000..37ad0286e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPC/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPC/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPC/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPC/test.desc new file mode 100644 index 00000000000..3e5876d9b3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc new file mode 100644 index 00000000000..28253d07381 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_PSO_ALL/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_ALL/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_ALL/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_ALL/test.desc new file mode 100644 index 00000000000..937d65f4b38 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPC/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPC/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPC/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPC/test.desc new file mode 100644 index 00000000000..1097a4c8439 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc new file mode 100644 index 00000000000..08567f4ba11 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_RMO_ALL/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_ALL/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_ALL/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_ALL/test.desc new file mode 100644 index 00000000000..ff1f3c335eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPC/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPC/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPC/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPC/test.desc new file mode 100644 index 00000000000..e90669ed07e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc new file mode 100644 index 00000000000..9cae55e498d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/test.desc new file mode 100644 index 00000000000..c4052f4e7de --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe063.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_TSO_ALL/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_ALL/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_ALL/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_ALL/test.desc new file mode 100644 index 00000000000..4ddfcdd0644 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPC/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPC/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPC/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPC/test.desc new file mode 100644 index 00000000000..9d74f9bf08e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/safe063.c b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/safe063.c new file mode 100644 index 00000000000..80d8654608e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/safe063.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc new file mode 100644 index 00000000000..b20846f2c4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe063.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..176bf89d9a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe064.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_POWER_ALL/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_ALL/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_ALL/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_ALL/test.desc new file mode 100644 index 00000000000..9283f91b3f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPC/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPC/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPC/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPC/test.desc new file mode 100644 index 00000000000..2d3f1ff470d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc new file mode 100644 index 00000000000..0a87a1237a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_PSO_ALL/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_ALL/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_ALL/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_ALL/test.desc new file mode 100644 index 00000000000..0402cca1b71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPC/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPC/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPC/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPC/test.desc new file mode 100644 index 00000000000..73bab6f1823 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc new file mode 100644 index 00000000000..f3b74da5e76 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_RMO_ALL/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_ALL/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_ALL/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_ALL/test.desc new file mode 100644 index 00000000000..9b02b7bc9ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPC/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPC/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPC/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPC/test.desc new file mode 100644 index 00000000000..8a477568bc3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc new file mode 100644 index 00000000000..5aa8dfeb8bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/test.desc new file mode 100644 index 00000000000..32257ff1b23 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe064.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_TSO_ALL/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_ALL/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_ALL/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_ALL/test.desc new file mode 100644 index 00000000000..6e6b888c194 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPC/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPC/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPC/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPC/test.desc new file mode 100644 index 00000000000..bcaa7df281d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/safe064.c b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/safe064.c new file mode 100644 index 00000000000..d83f442f7ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/safe064.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc new file mode 100644 index 00000000000..899a55c7ad7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe064.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e5ec7f11a5d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe065.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/test.desc new file mode 100644 index 00000000000..2b2ec430f8f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/test.desc new file mode 100644 index 00000000000..f0cbdcd697d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc new file mode 100644 index 00000000000..2bc3a2350a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/test.desc new file mode 100644 index 00000000000..4298d462620 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/test.desc new file mode 100644 index 00000000000..6310691e48a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc new file mode 100644 index 00000000000..13a43666c43 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/test.desc new file mode 100644 index 00000000000..2280f4d3032 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/test.desc new file mode 100644 index 00000000000..970ce3bc5be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc new file mode 100644 index 00000000000..00bf4f9807a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/test.desc new file mode 100644 index 00000000000..1d5eb551768 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe065.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/test.desc new file mode 100644 index 00000000000..222fb549e76 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/test.desc new file mode 100644 index 00000000000..94ccf0bca30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/safe065.c b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/safe065.c new file mode 100644 index 00000000000..108828c30af --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/safe065.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc new file mode 100644 index 00000000000..9a5b355e881 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe065.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e7794fbd66e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe066.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_POWER_ALL/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_ALL/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_ALL/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_ALL/test.desc new file mode 100644 index 00000000000..13eabde320d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPC/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPC/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPC/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPC/test.desc new file mode 100644 index 00000000000..f2b75b3c82d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc new file mode 100644 index 00000000000..8964da80e0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_PSO_ALL/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_ALL/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_ALL/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_ALL/test.desc new file mode 100644 index 00000000000..47986f0a5d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPC/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPC/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPC/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPC/test.desc new file mode 100644 index 00000000000..4457f2a1c89 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc new file mode 100644 index 00000000000..c2a2ad18b12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_RMO_ALL/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_ALL/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_ALL/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_ALL/test.desc new file mode 100644 index 00000000000..5c54ff8fb2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPC/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPC/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPC/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPC/test.desc new file mode 100644 index 00000000000..062725db0a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc new file mode 100644 index 00000000000..0b7e6d059d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/test.desc new file mode 100644 index 00000000000..cbbb12ffe54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe066.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_TSO_ALL/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_ALL/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_ALL/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_ALL/test.desc new file mode 100644 index 00000000000..b0c5cd86ae9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPC/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPC/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPC/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPC/test.desc new file mode 100644 index 00000000000..476c63a5b92 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/safe066.c b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/safe066.c new file mode 100644 index 00000000000..b489ab20d6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/safe066.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc new file mode 100644 index 00000000000..fca1bac449c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe066.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..933b53cab69 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe067.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_POWER_ALL/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_ALL/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_ALL/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_ALL/test.desc new file mode 100644 index 00000000000..63d05bffd7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPC/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPC/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPC/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPC/test.desc new file mode 100644 index 00000000000..2357eccb541 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc new file mode 100644 index 00000000000..4c87e8651e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_PSO_ALL/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_ALL/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_ALL/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_ALL/test.desc new file mode 100644 index 00000000000..c5f550a805d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPC/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPC/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPC/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPC/test.desc new file mode 100644 index 00000000000..5062887cb53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc new file mode 100644 index 00000000000..36ced27e5da --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_RMO_ALL/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_ALL/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_ALL/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_ALL/test.desc new file mode 100644 index 00000000000..13501802f67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPC/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPC/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPC/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPC/test.desc new file mode 100644 index 00000000000..51da6e13b36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc new file mode 100644 index 00000000000..b54c93ff13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/test.desc new file mode 100644 index 00000000000..4c2e68aca20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe067.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_TSO_ALL/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_ALL/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_ALL/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_ALL/test.desc new file mode 100644 index 00000000000..a35e01b01f5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPC/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPC/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPC/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPC/test.desc new file mode 100644 index 00000000000..983a9f0990c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/safe067.c b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/safe067.c new file mode 100644 index 00000000000..18d1bfa543c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/safe067.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc new file mode 100644 index 00000000000..e11b0892aff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe067.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e591813de1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe068.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_POWER_ALL/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_ALL/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_ALL/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_ALL/test.desc new file mode 100644 index 00000000000..bd2690e6e31 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe068.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPC/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPC/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPC/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPC/test.desc new file mode 100644 index 00000000000..651bec21a21 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe068.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/test.desc new file mode 100644 index 00000000000..deb773beb5a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe068.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_PSO_ALL/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_ALL/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_ALL/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_ALL/test.desc new file mode 100644 index 00000000000..a0612353cf8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe068.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPC/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPC/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPC/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPC/test.desc new file mode 100644 index 00000000000..fa2f7256f6c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe068.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc new file mode 100644 index 00000000000..d7310199151 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe068.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_RMO_ALL/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_ALL/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_ALL/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_ALL/test.desc new file mode 100644 index 00000000000..eb0cdf31dc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe068.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPC/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPC/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPC/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPC/test.desc new file mode 100644 index 00000000000..d1da39576c9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe068.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc new file mode 100644 index 00000000000..d74a9aee87c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe068.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/test.desc new file mode 100644 index 00000000000..fd3b64a22ae --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe068.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_TSO_ALL/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_ALL/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_ALL/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_ALL/test.desc new file mode 100644 index 00000000000..b07f7eee1ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe068.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPC/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPC/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPC/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPC/test.desc new file mode 100644 index 00000000000..8dde4b9a9d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe068.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/safe068.c b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/safe068.c new file mode 100644 index 00000000000..b266f5eb4a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/safe068.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc new file mode 100644 index 00000000000..7c5201f111f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe068.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..58ad71804aa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe069.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_POWER_ALL/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_ALL/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_ALL/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_ALL/test.desc new file mode 100644 index 00000000000..da8dff6b768 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPC/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPC/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPC/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPC/test.desc new file mode 100644 index 00000000000..84f00437986 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc new file mode 100644 index 00000000000..0ffad1e9266 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_PSO_ALL/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_ALL/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_ALL/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_ALL/test.desc new file mode 100644 index 00000000000..14f7c59bd56 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPC/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPC/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPC/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPC/test.desc new file mode 100644 index 00000000000..326a078c443 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc new file mode 100644 index 00000000000..082130769b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_RMO_ALL/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_ALL/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_ALL/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_ALL/test.desc new file mode 100644 index 00000000000..bc448f9d5a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPC/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPC/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPC/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPC/test.desc new file mode 100644 index 00000000000..4d69557482c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc new file mode 100644 index 00000000000..e717c4e7e7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/test.desc new file mode 100644 index 00000000000..be103a4f414 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe069.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_TSO_ALL/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_ALL/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_ALL/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_ALL/test.desc new file mode 100644 index 00000000000..2783e66a15d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPC/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPC/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPC/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPC/test.desc new file mode 100644 index 00000000000..d519e9156ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/safe069.c b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/safe069.c new file mode 100644 index 00000000000..daec35a7f7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/safe069.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc new file mode 100644 index 00000000000..9d485831d2e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe069.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..6fc411c0fe7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe070.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_POWER_ALL/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_ALL/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_ALL/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_ALL/test.desc new file mode 100644 index 00000000000..cc889c70a34 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe070.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPC/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPC/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPC/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPC/test.desc new file mode 100644 index 00000000000..7db020cd98c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe070.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/test.desc new file mode 100644 index 00000000000..68ee4a5473e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe070.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_PSO_ALL/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_ALL/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_ALL/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_ALL/test.desc new file mode 100644 index 00000000000..0405d5b6e30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe070.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPC/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPC/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPC/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPC/test.desc new file mode 100644 index 00000000000..7b7244c01ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe070.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc new file mode 100644 index 00000000000..a9a4bb01abd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe070.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_RMO_ALL/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_ALL/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_ALL/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_ALL/test.desc new file mode 100644 index 00000000000..e5f18646b47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe070.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPC/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPC/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPC/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPC/test.desc new file mode 100644 index 00000000000..6844e33eed1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe070.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc new file mode 100644 index 00000000000..1f52d978037 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe070.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/test.desc new file mode 100644 index 00000000000..ff7a54c6724 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe070.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_TSO_ALL/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_ALL/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_ALL/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_ALL/test.desc new file mode 100644 index 00000000000..01cd5bcb1c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe070.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPC/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPC/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPC/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPC/test.desc new file mode 100644 index 00000000000..d9f848f8d47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe070.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/safe070.c b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/safe070.c new file mode 100644 index 00000000000..e31b62f95be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/safe070.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc new file mode 100644 index 00000000000..346527abf72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe070.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..5e2acab2287 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe071.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_POWER_ALL/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_ALL/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_ALL/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_ALL/test.desc new file mode 100644 index 00000000000..d96ee30a9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPC/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPC/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPC/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPC/test.desc new file mode 100644 index 00000000000..aee114786ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc new file mode 100644 index 00000000000..8b2be9027b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_PSO_ALL/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_ALL/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_ALL/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_ALL/test.desc new file mode 100644 index 00000000000..fc3ef519d1c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPC/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPC/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPC/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPC/test.desc new file mode 100644 index 00000000000..3e2bb3a5dda --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc new file mode 100644 index 00000000000..599b48b82d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_RMO_ALL/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_ALL/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_ALL/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_ALL/test.desc new file mode 100644 index 00000000000..96984463316 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPC/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPC/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPC/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPC/test.desc new file mode 100644 index 00000000000..7dea4667dd1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc new file mode 100644 index 00000000000..13f5706e1b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/test.desc new file mode 100644 index 00000000000..cc4c5395ce4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe071.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_TSO_ALL/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_ALL/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_ALL/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_ALL/test.desc new file mode 100644 index 00000000000..b8ae9995350 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPC/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPC/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPC/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPC/test.desc new file mode 100644 index 00000000000..74a8e550ea6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/safe071.c b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/safe071.c new file mode 100644 index 00000000000..0fd5fe01736 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/safe071.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = 1; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc new file mode 100644 index 00000000000..d73a041a4c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe071.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..2ea0606989f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe072.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_POWER_ALL/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_ALL/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_ALL/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_ALL/test.desc new file mode 100644 index 00000000000..28eba313cde --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPC/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPC/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPC/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPC/test.desc new file mode 100644 index 00000000000..9b70d8772bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc new file mode 100644 index 00000000000..9e6d518634b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_PSO_ALL/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_ALL/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_ALL/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_ALL/test.desc new file mode 100644 index 00000000000..118bc2f5bdd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPC/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPC/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPC/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPC/test.desc new file mode 100644 index 00000000000..89b13107eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc new file mode 100644 index 00000000000..c7e497a68dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_RMO_ALL/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_ALL/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_ALL/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_ALL/test.desc new file mode 100644 index 00000000000..1325d136655 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPC/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPC/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPC/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPC/test.desc new file mode 100644 index 00000000000..bf8a8a6a5c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc new file mode 100644 index 00000000000..7350f54f6cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/test.desc new file mode 100644 index 00000000000..85d851c0eb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe072.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_TSO_ALL/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_ALL/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_ALL/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_ALL/test.desc new file mode 100644 index 00000000000..f959cbb836d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPC/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPC/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPC/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPC/test.desc new file mode 100644 index 00000000000..f34f107a668 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/safe072.c b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/safe072.c new file mode 100644 index 00000000000..b867a5ce470 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/safe072.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc new file mode 100644 index 00000000000..adf2b649fe3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe072.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..2cf7acebf95 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe073.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_POWER_ALL/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_ALL/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_ALL/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_ALL/test.desc new file mode 100644 index 00000000000..ddfd9e25cb4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe073.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPC/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPC/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPC/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPC/test.desc new file mode 100644 index 00000000000..8c0d472f32f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe073.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/test.desc new file mode 100644 index 00000000000..76af374abf1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe073.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_PSO_ALL/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_ALL/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_ALL/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_ALL/test.desc new file mode 100644 index 00000000000..66d2b931734 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe073.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPC/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPC/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPC/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPC/test.desc new file mode 100644 index 00000000000..f0e4741cbfd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe073.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc new file mode 100644 index 00000000000..5e56ed90ab7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe073.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_RMO_ALL/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_ALL/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_ALL/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_ALL/test.desc new file mode 100644 index 00000000000..7c9d0622c46 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe073.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPC/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPC/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPC/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPC/test.desc new file mode 100644 index 00000000000..54a423dc264 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe073.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc new file mode 100644 index 00000000000..92ed6d4f1d1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe073.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/test.desc new file mode 100644 index 00000000000..ede8ce394c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe073.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_TSO_ALL/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_ALL/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_ALL/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_ALL/test.desc new file mode 100644 index 00000000000..42a15cf383f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe073.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPC/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPC/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPC/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPC/test.desc new file mode 100644 index 00000000000..0dcccb4d1a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe073.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/safe073.c b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/safe073.c new file mode 100644 index 00000000000..96678d4f82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/safe073.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc new file mode 100644 index 00000000000..39d95f0bee2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe073.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1333ccad102 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe074.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_POWER_ALL/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_ALL/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_ALL/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_ALL/test.desc new file mode 100644 index 00000000000..00e8f5c1277 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe074.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPC/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPC/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPC/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPC/test.desc new file mode 100644 index 00000000000..1f3baecc81d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe074.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/test.desc new file mode 100644 index 00000000000..95b55ebb20b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe074.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_PSO_ALL/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_ALL/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_ALL/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_ALL/test.desc new file mode 100644 index 00000000000..c16bc814ade --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe074.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPC/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPC/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPC/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPC/test.desc new file mode 100644 index 00000000000..276e21f67b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe074.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc new file mode 100644 index 00000000000..5b21745fde3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe074.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_RMO_ALL/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_ALL/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_ALL/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_ALL/test.desc new file mode 100644 index 00000000000..0f1ccbab9be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe074.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPC/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPC/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPC/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPC/test.desc new file mode 100644 index 00000000000..db1b4127d45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe074.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc new file mode 100644 index 00000000000..d7334ca2846 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe074.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/test.desc new file mode 100644 index 00000000000..c3fcedc0fae --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe074.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_TSO_ALL/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_ALL/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_ALL/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_ALL/test.desc new file mode 100644 index 00000000000..bf83e7473b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe074.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPC/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPC/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPC/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPC/test.desc new file mode 100644 index 00000000000..3a570975c4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe074.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/safe074.c b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/safe074.c new file mode 100644 index 00000000000..6cc09a1c11e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/safe074.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc new file mode 100644 index 00000000000..622c9afb4b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe074.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..e50b7006fb8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe075.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_POWER_ALL/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_ALL/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_ALL/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_ALL/test.desc new file mode 100644 index 00000000000..f52245ef34e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe075.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPC/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPC/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPC/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPC/test.desc new file mode 100644 index 00000000000..54eec8b1a56 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe075.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/test.desc new file mode 100644 index 00000000000..0cebcd564d7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe075.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/test.desc new file mode 100644 index 00000000000..e507a69fd9a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe075.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc new file mode 100644 index 00000000000..4c5a184025e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe075.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_RMO_ALL/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_ALL/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_ALL/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_ALL/test.desc new file mode 100644 index 00000000000..8b975f3ac08 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe075.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPC/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPC/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPC/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPC/test.desc new file mode 100644 index 00000000000..54d005748d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe075.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc new file mode 100644 index 00000000000..6ab1b90ec1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe075.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/test.desc new file mode 100644 index 00000000000..978c2602537 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe075.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/test.desc new file mode 100644 index 00000000000..862bbe0f593 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe075.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/test.desc new file mode 100644 index 00000000000..ac32db3d56b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe075.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/safe075.c b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/safe075.c new file mode 100644 index 00000000000..b2f1f0b1120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/safe075.c @@ -0,0 +1,59 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = *(&y + __unbuffered_p1_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc new file mode 100644 index 00000000000..5a78cdd0c9a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe075.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..848b2c4479d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe076.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_POWER_ALL/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_ALL/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_ALL/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_ALL/test.desc new file mode 100644 index 00000000000..ec368af6404 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPC/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPC/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPC/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPC/test.desc new file mode 100644 index 00000000000..14f546de768 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc new file mode 100644 index 00000000000..7dfe6914b35 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_PSO_ALL/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_ALL/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_ALL/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_ALL/test.desc new file mode 100644 index 00000000000..f3dbdb7270e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPC/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPC/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPC/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPC/test.desc new file mode 100644 index 00000000000..a089173e477 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc new file mode 100644 index 00000000000..055842799de --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_RMO_ALL/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_ALL/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_ALL/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_ALL/test.desc new file mode 100644 index 00000000000..a024cb75690 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPC/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPC/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPC/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPC/test.desc new file mode 100644 index 00000000000..c5099034ba7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc new file mode 100644 index 00000000000..6f6eb5d35f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/test.desc new file mode 100644 index 00000000000..3d167a8a6a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe076.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_TSO_ALL/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_ALL/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_ALL/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_ALL/test.desc new file mode 100644 index 00000000000..39f2fbe8aff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPC/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPC/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPC/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPC/test.desc new file mode 100644 index 00000000000..7ef74eb2816 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/safe076.c b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/safe076.c new file mode 100644 index 00000000000..8802bdab124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/safe076.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc new file mode 100644 index 00000000000..e71f6e8d21d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe076.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..83fd404c38f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe077.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_POWER_ALL/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_ALL/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_ALL/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_ALL/test.desc new file mode 100644 index 00000000000..1893a212a50 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe077.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPC/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPC/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPC/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPC/test.desc new file mode 100644 index 00000000000..7cb9067bcf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe077.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/test.desc new file mode 100644 index 00000000000..0222abe8c67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe077.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_PSO_ALL/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_ALL/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_ALL/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_ALL/test.desc new file mode 100644 index 00000000000..6b696b4589c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe077.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPC/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPC/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPC/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPC/test.desc new file mode 100644 index 00000000000..5c604e7bd2c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe077.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc new file mode 100644 index 00000000000..4af5e744765 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe077.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_RMO_ALL/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_ALL/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_ALL/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_ALL/test.desc new file mode 100644 index 00000000000..6564d9108c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe077.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPC/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPC/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPC/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPC/test.desc new file mode 100644 index 00000000000..e5a963ad399 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe077.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc new file mode 100644 index 00000000000..fb8672fb12d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe077.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/test.desc new file mode 100644 index 00000000000..ffaea72144a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe077.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_TSO_ALL/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_ALL/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_ALL/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_ALL/test.desc new file mode 100644 index 00000000000..5584b9de607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe077.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPC/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPC/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPC/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPC/test.desc new file mode 100644 index 00000000000..7cc511e6c8f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe077.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/safe077.c b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/safe077.c new file mode 100644 index 00000000000..cd10ab3af45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/safe077.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc new file mode 100644 index 00000000000..3e6f1941951 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe077.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..365de3fb704 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe078.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_POWER_ALL/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_ALL/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_ALL/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_ALL/test.desc new file mode 100644 index 00000000000..5fa5c4dd984 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe078.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPC/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPC/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPC/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPC/test.desc new file mode 100644 index 00000000000..b382a5a530f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe078.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/test.desc new file mode 100644 index 00000000000..dde6444c400 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe078.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/test.desc new file mode 100644 index 00000000000..0895d22c111 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe078.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc new file mode 100644 index 00000000000..e4f60193648 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe078.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_RMO_ALL/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_ALL/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_ALL/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_ALL/test.desc new file mode 100644 index 00000000000..92c67235dee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe078.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPC/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPC/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPC/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPC/test.desc new file mode 100644 index 00000000000..a57d9a7a113 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe078.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc new file mode 100644 index 00000000000..8ced80dc335 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe078.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/test.desc new file mode 100644 index 00000000000..96bb49715f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe078.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/test.desc new file mode 100644 index 00000000000..d84f6ff72e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe078.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/test.desc new file mode 100644 index 00000000000..e9952efb7fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe078.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/safe078.c b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/safe078.c new file mode 100644 index 00000000000..79ef7a60bb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/safe078.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc new file mode 100644 index 00000000000..08b2fa90943 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe078.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..a6b15e6dfed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe079.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_POWER_ALL/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_ALL/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_ALL/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_ALL/test.desc new file mode 100644 index 00000000000..fa522d58502 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPC/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPC/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPC/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPC/test.desc new file mode 100644 index 00000000000..a400adc5bbd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc new file mode 100644 index 00000000000..5b69846ff4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_PSO_ALL/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_ALL/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_ALL/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_ALL/test.desc new file mode 100644 index 00000000000..ed0e5b8b81a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPC/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPC/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPC/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPC/test.desc new file mode 100644 index 00000000000..0881a06b468 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc new file mode 100644 index 00000000000..d2f8573efd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_RMO_ALL/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_ALL/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_ALL/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_ALL/test.desc new file mode 100644 index 00000000000..5b2bca54b32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPC/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPC/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPC/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPC/test.desc new file mode 100644 index 00000000000..d213741bbd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc new file mode 100644 index 00000000000..679ee729358 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/test.desc new file mode 100644 index 00000000000..b9ce028e60d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe079.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_TSO_ALL/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_ALL/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_ALL/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_ALL/test.desc new file mode 100644 index 00000000000..9c975dbf48d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPC/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPC/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPC/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPC/test.desc new file mode 100644 index 00000000000..5aa60a05147 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/safe079.c b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/safe079.c new file mode 100644 index 00000000000..0e9462e90eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/safe079.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&z + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc new file mode 100644 index 00000000000..6d83375d7f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe079.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1e29844e8dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe080.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_POWER_ALL/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_ALL/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_ALL/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_ALL/test.desc new file mode 100644 index 00000000000..835ac2b416c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPC/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPC/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPC/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPC/test.desc new file mode 100644 index 00000000000..8ccdb515d6d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc new file mode 100644 index 00000000000..2e35cfae545 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_PSO_ALL/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_ALL/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_ALL/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_ALL/test.desc new file mode 100644 index 00000000000..92404dc6c42 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPC/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPC/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPC/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPC/test.desc new file mode 100644 index 00000000000..eb768be6e6d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc new file mode 100644 index 00000000000..855c7154b0a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_RMO_ALL/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_ALL/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_ALL/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_ALL/test.desc new file mode 100644 index 00000000000..ddbaa9c8c64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPC/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPC/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPC/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPC/test.desc new file mode 100644 index 00000000000..e35efc6a120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc new file mode 100644 index 00000000000..8e28f4a7deb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/test.desc new file mode 100644 index 00000000000..e298db11592 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe080.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_TSO_ALL/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_ALL/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_ALL/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_ALL/test.desc new file mode 100644 index 00000000000..bd94fc01bc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPC/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPC/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPC/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPC/test.desc new file mode 100644 index 00000000000..e83abf8f066 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/safe080.c b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/safe080.c new file mode 100644 index 00000000000..594450d273c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/safe080.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 0 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc new file mode 100644 index 00000000000..a5c40df20fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe080.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..a369f4bed0f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe081.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_POWER_ALL/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_ALL/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_ALL/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_ALL/test.desc new file mode 100644 index 00000000000..8c7ab2d63e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe081.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPC/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPC/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPC/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPC/test.desc new file mode 100644 index 00000000000..85c4804acdc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe081.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_PSO_ALL/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_ALL/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_ALL/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_ALL/test.desc new file mode 100644 index 00000000000..9721bc06def --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe081.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPC/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPC/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPC/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPC/test.desc new file mode 100644 index 00000000000..92e03da6928 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe081.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc new file mode 100644 index 00000000000..347fd56c667 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe081.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_RMO_ALL/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_ALL/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_ALL/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_ALL/test.desc new file mode 100644 index 00000000000..e4a5748bfff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe081.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPC/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPC/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPC/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPC/test.desc new file mode 100644 index 00000000000..299baacd55a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe081.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc new file mode 100644 index 00000000000..ec8387e9886 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe081.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/test.desc new file mode 100644 index 00000000000..fb05040af6f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe081.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_TSO_ALL/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_ALL/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_ALL/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_ALL/test.desc new file mode 100644 index 00000000000..1c0232da3c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe081.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPC/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPC/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPC/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPC/test.desc new file mode 100644 index 00000000000..d6a6851c531 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe081.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/safe081.c b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/safe081.c new file mode 100644 index 00000000000..a4e10dfd871 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/safe081.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = *(&y + __unbuffered_p2_r3); + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r4 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc new file mode 100644 index 00000000000..50ae929621d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe081.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..627b72b9328 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe082.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_POWER_ALL/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_ALL/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_ALL/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_ALL/test.desc new file mode 100644 index 00000000000..05e9e7dc2cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPC/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPC/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPC/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPC/test.desc new file mode 100644 index 00000000000..f0992c91e41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc new file mode 100644 index 00000000000..e76a8940e12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_PSO_ALL/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_ALL/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_ALL/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_ALL/test.desc new file mode 100644 index 00000000000..a3b856878f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPC/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPC/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPC/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPC/test.desc new file mode 100644 index 00000000000..5bc55e22e6d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc new file mode 100644 index 00000000000..ca916a44483 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_RMO_ALL/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_ALL/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_ALL/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_ALL/test.desc new file mode 100644 index 00000000000..ee496af746f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPC/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPC/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPC/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPC/test.desc new file mode 100644 index 00000000000..fc39ddf8301 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc new file mode 100644 index 00000000000..e1df89dc445 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/test.desc new file mode 100644 index 00000000000..18303bffb25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe082.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_TSO_ALL/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_ALL/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_ALL/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_ALL/test.desc new file mode 100644 index 00000000000..6878e8126c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPC/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPC/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPC/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPC/test.desc new file mode 100644 index 00000000000..5b8e03b3022 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/safe082.c b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/safe082.c new file mode 100644 index 00000000000..3a15ef56c81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/safe082.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc new file mode 100644 index 00000000000..139ba607369 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe082.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..71d6d3406aa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe083.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_POWER_ALL/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_ALL/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_ALL/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_ALL/test.desc new file mode 100644 index 00000000000..d77695b33f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPC/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPC/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPC/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPC/test.desc new file mode 100644 index 00000000000..91652032694 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc new file mode 100644 index 00000000000..c58c84bd6f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_PSO_ALL/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_ALL/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_ALL/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_ALL/test.desc new file mode 100644 index 00000000000..de9d98b7519 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPC/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPC/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPC/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPC/test.desc new file mode 100644 index 00000000000..29e2e0fcbf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc new file mode 100644 index 00000000000..f44c25d6997 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_RMO_ALL/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_ALL/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_ALL/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_ALL/test.desc new file mode 100644 index 00000000000..d840332091f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPC/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPC/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPC/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPC/test.desc new file mode 100644 index 00000000000..bca9cad37cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc new file mode 100644 index 00000000000..0f17f04de1f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/test.desc new file mode 100644 index 00000000000..3c5ccb273de --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe083.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_TSO_ALL/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_ALL/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_ALL/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_ALL/test.desc new file mode 100644 index 00000000000..e4c74060bf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPC/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPC/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPC/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPC/test.desc new file mode 100644 index 00000000000..267916da21e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/safe083.c b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/safe083.c new file mode 100644 index 00000000000..4fd25cedc36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/safe083.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 1; + x = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r3 == 0 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc new file mode 100644 index 00000000000..ea4dc28e8cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe083.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..998f9dffb7e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe084.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_POWER_ALL/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_ALL/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_ALL/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_ALL/test.desc new file mode 100644 index 00000000000..2ff1638ac71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPC/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPC/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPC/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPC/test.desc new file mode 100644 index 00000000000..5cf15533292 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc new file mode 100644 index 00000000000..40679ba7301 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_PSO_ALL/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_ALL/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_ALL/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_ALL/test.desc new file mode 100644 index 00000000000..b08ef5e3d4a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPC/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPC/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPC/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPC/test.desc new file mode 100644 index 00000000000..81d9649cf50 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc new file mode 100644 index 00000000000..e1b7996159a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_RMO_ALL/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_ALL/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_ALL/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_ALL/test.desc new file mode 100644 index 00000000000..7d08fb238ad --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPC/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPC/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPC/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPC/test.desc new file mode 100644 index 00000000000..3a7c0eea532 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc new file mode 100644 index 00000000000..a79611663d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/test.desc new file mode 100644 index 00000000000..3ee3b320016 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe084.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_TSO_ALL/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_ALL/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_ALL/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_ALL/test.desc new file mode 100644 index 00000000000..1159311fffb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPC/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPC/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPC/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPC/test.desc new file mode 100644 index 00000000000..3a5d77e77cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/safe084.c b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/safe084.c new file mode 100644 index 00000000000..06fb2a56f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/safe084.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc new file mode 100644 index 00000000000..a3ac38e5b35 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe084.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..ecec9b31077 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe085.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_POWER_ALL/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_ALL/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_ALL/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_ALL/test.desc new file mode 100644 index 00000000000..1afde28e83d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe085.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPC/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPC/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPC/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPC/test.desc new file mode 100644 index 00000000000..372d2c4e113 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe085.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/test.desc new file mode 100644 index 00000000000..a3f0c4237ac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe085.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/test.desc new file mode 100644 index 00000000000..1e849f249ad --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe085.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/test.desc new file mode 100644 index 00000000000..3b888641a86 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe085.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc new file mode 100644 index 00000000000..1a3a3a0f317 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe085.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/test.desc new file mode 100644 index 00000000000..80f970a39e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe085.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/test.desc new file mode 100644 index 00000000000..6aa2f33ab54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe085.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc new file mode 100644 index 00000000000..99e9c179ee0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe085.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/test.desc new file mode 100644 index 00000000000..6ce31ce768e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe085.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/test.desc new file mode 100644 index 00000000000..eef63eba6c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe085.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/test.desc new file mode 100644 index 00000000000..e260b0a0c97 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe085.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/safe085.c b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/safe085.c new file mode 100644 index 00000000000..d5c2c54afcc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/safe085.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc new file mode 100644 index 00000000000..742596ba70f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe085.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..12a94144859 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe086.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_POWER_ALL/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_ALL/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_ALL/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_ALL/test.desc new file mode 100644 index 00000000000..d92c8cf4d5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPC/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPC/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPC/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPC/test.desc new file mode 100644 index 00000000000..d2cafc7c88a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc new file mode 100644 index 00000000000..9578dcb4dc2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_PSO_ALL/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_ALL/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_ALL/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_ALL/test.desc new file mode 100644 index 00000000000..9fca467bbdf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPC/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPC/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPC/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPC/test.desc new file mode 100644 index 00000000000..a26ba5f29a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc new file mode 100644 index 00000000000..1f8c2cae38f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_RMO_ALL/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_ALL/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_ALL/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_ALL/test.desc new file mode 100644 index 00000000000..d5527ac3119 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPC/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPC/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPC/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPC/test.desc new file mode 100644 index 00000000000..70656e3c58a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc new file mode 100644 index 00000000000..43f1bd00d5d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/test.desc new file mode 100644 index 00000000000..8e7eef22ed5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe086.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_TSO_ALL/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_ALL/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_ALL/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_ALL/test.desc new file mode 100644 index 00000000000..a8ee417cad7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPC/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPC/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPC/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPC/test.desc new file mode 100644 index 00000000000..e22fca0f6a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/safe086.c b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/safe086.c new file mode 100644 index 00000000000..4f5dbec9a65 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/safe086.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc new file mode 100644 index 00000000000..ac2d9bef081 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe086.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..824397a62dc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe087.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_POWER_ALL/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_ALL/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_ALL/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_ALL/test.desc new file mode 100644 index 00000000000..047f0ebf895 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe087.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPC/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPC/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPC/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPC/test.desc new file mode 100644 index 00000000000..6abb232ea15 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe087.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_PSO_ALL/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_ALL/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_ALL/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_ALL/test.desc new file mode 100644 index 00000000000..6686a0f0421 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe087.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPC/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPC/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPC/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPC/test.desc new file mode 100644 index 00000000000..63e74ab2816 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe087.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc new file mode 100644 index 00000000000..927672abc1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe087.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_RMO_ALL/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_ALL/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_ALL/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_ALL/test.desc new file mode 100644 index 00000000000..922aa309c02 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe087.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPC/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPC/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPC/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPC/test.desc new file mode 100644 index 00000000000..5be0360af1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe087.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc new file mode 100644 index 00000000000..83891c78c66 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe087.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/test.desc new file mode 100644 index 00000000000..8276f3b0e36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe087.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_TSO_ALL/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_ALL/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_ALL/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_ALL/test.desc new file mode 100644 index 00000000000..19854aaf7fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe087.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPC/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPC/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPC/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPC/test.desc new file mode 100644 index 00000000000..edb2d3a4a97 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe087.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/safe087.c b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/safe087.c new file mode 100644 index 00000000000..1a910fb2296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/safe087.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc new file mode 100644 index 00000000000..85ad6ba6eb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe087.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..8c50b5d7544 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe088.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_POWER_ALL/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_ALL/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_ALL/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_ALL/test.desc new file mode 100644 index 00000000000..7da6160e58a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe088.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPC/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPC/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPC/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPC/test.desc new file mode 100644 index 00000000000..38aa44b7e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe088.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/test.desc new file mode 100644 index 00000000000..30d51181227 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe088.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/test.desc new file mode 100644 index 00000000000..bbb7a06bc1f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe088.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/test.desc new file mode 100644 index 00000000000..3d0758668cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe088.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc new file mode 100644 index 00000000000..c424fa8f4bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe088.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/test.desc new file mode 100644 index 00000000000..07b98b60215 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe088.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/test.desc new file mode 100644 index 00000000000..9ac000d7be5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe088.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc new file mode 100644 index 00000000000..1c7037aba01 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe088.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/test.desc new file mode 100644 index 00000000000..b56680cff1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe088.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/test.desc new file mode 100644 index 00000000000..c399fad127b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe088.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/test.desc new file mode 100644 index 00000000000..18e838cdccc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe088.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/safe088.c b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/safe088.c new file mode 100644 index 00000000000..db643112cea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/safe088.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc new file mode 100644 index 00000000000..b586652da14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe088.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..11d93545ff6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe089.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_POWER_ALL/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_ALL/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_ALL/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_ALL/test.desc new file mode 100644 index 00000000000..396e209fed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPC/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPC/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPC/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPC/test.desc new file mode 100644 index 00000000000..693dad78e09 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc new file mode 100644 index 00000000000..cea504b47da --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_PSO_ALL/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_ALL/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_ALL/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_ALL/test.desc new file mode 100644 index 00000000000..a96afa6c1dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPC/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPC/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPC/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPC/test.desc new file mode 100644 index 00000000000..8ce7d6a224b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc new file mode 100644 index 00000000000..a6b9252ac7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_RMO_ALL/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_ALL/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_ALL/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_ALL/test.desc new file mode 100644 index 00000000000..2fa6d1d94a0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPC/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPC/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPC/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPC/test.desc new file mode 100644 index 00000000000..42ff8d6b5b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc new file mode 100644 index 00000000000..edb2a5dbd17 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/test.desc new file mode 100644 index 00000000000..f8d8ec0ce94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe089.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_TSO_ALL/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_ALL/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_ALL/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_ALL/test.desc new file mode 100644 index 00000000000..1246af51baa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPC/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPC/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPC/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPC/test.desc new file mode 100644 index 00000000000..7d0c175f986 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/safe089.c b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/safe089.c new file mode 100644 index 00000000000..ff1cdb3375d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/safe089.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc new file mode 100644 index 00000000000..d0718969b60 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe089.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..c52552cf300 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe090.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_POWER_ALL/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_ALL/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_ALL/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_ALL/test.desc new file mode 100644 index 00000000000..c5b35779e6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe090.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPC/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPC/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPC/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPC/test.desc new file mode 100644 index 00000000000..d53018c0d55 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe090.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_PSO_ALL/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_ALL/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_ALL/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_ALL/test.desc new file mode 100644 index 00000000000..b451fec0a8d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe090.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPC/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPC/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPC/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPC/test.desc new file mode 100644 index 00000000000..9879450d845 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe090.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc new file mode 100644 index 00000000000..8e8df9588df --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe090.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_RMO_ALL/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_ALL/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_ALL/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_ALL/test.desc new file mode 100644 index 00000000000..fd6f1cab869 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe090.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPC/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPC/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPC/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPC/test.desc new file mode 100644 index 00000000000..68efe0557b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe090.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc new file mode 100644 index 00000000000..b3cdbe79454 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe090.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/test.desc new file mode 100644 index 00000000000..87ee9b67296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe090.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_TSO_ALL/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_ALL/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_ALL/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_ALL/test.desc new file mode 100644 index 00000000000..5d260651692 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe090.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPC/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPC/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPC/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPC/test.desc new file mode 100644 index 00000000000..b42ff4097bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe090.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/safe090.c b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/safe090.c new file mode 100644 index 00000000000..e303b7c8b05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/safe090.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc new file mode 100644 index 00000000000..8d8b3e79e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe090.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..66e3595c4c5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe091.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_POWER_ALL/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_ALL/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_ALL/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_ALL/test.desc new file mode 100644 index 00000000000..2f3b61fde81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe091.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPC/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPC/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPC/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPC/test.desc new file mode 100644 index 00000000000..9d3df42bd8d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe091.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/test.desc new file mode 100644 index 00000000000..a7bb3191ba8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe091.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_PSO_ALL/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_ALL/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_ALL/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_ALL/test.desc new file mode 100644 index 00000000000..5d53b4ea7d5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe091.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPC/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPC/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPC/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPC/test.desc new file mode 100644 index 00000000000..c228eee5d5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe091.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc new file mode 100644 index 00000000000..5346eef7617 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe091.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_RMO_ALL/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_ALL/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_ALL/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_ALL/test.desc new file mode 100644 index 00000000000..6706ece1023 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe091.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPC/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPC/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPC/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPC/test.desc new file mode 100644 index 00000000000..a018e75eff4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe091.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc new file mode 100644 index 00000000000..863b078e4f9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe091.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/test.desc new file mode 100644 index 00000000000..1ff1c144799 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe091.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_TSO_ALL/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_ALL/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_ALL/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_ALL/test.desc new file mode 100644 index 00000000000..75d03b1eddb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe091.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPC/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPC/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPC/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPC/test.desc new file mode 100644 index 00000000000..46176f90088 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe091.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/safe091.c b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/safe091.c new file mode 100644 index 00000000000..f058dac7a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/safe091.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 2; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc new file mode 100644 index 00000000000..aa8ef372e15 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe091.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..e9eb4ae58f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe092.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_POWER_ALL/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_ALL/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_ALL/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_ALL/test.desc new file mode 100644 index 00000000000..d50c272326c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPC/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPC/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPC/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPC/test.desc new file mode 100644 index 00000000000..62b2c2df846 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc new file mode 100644 index 00000000000..f72c306057c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_PSO_ALL/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_ALL/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_ALL/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_ALL/test.desc new file mode 100644 index 00000000000..1f4e445c394 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPC/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPC/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPC/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPC/test.desc new file mode 100644 index 00000000000..fbb5f422e93 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc new file mode 100644 index 00000000000..317bd5b6711 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_RMO_ALL/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_ALL/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_ALL/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_ALL/test.desc new file mode 100644 index 00000000000..4aa8471da9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPC/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPC/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPC/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPC/test.desc new file mode 100644 index 00000000000..beac14546b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc new file mode 100644 index 00000000000..b9141a355a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/test.desc new file mode 100644 index 00000000000..9b2a4e04a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe092.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_TSO_ALL/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_ALL/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_ALL/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_ALL/test.desc new file mode 100644 index 00000000000..d51068f8cba --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPC/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPC/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPC/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPC/test.desc new file mode 100644 index 00000000000..83f18a5f59b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/safe092.c b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/safe092.c new file mode 100644 index 00000000000..525b3377357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/safe092.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc new file mode 100644 index 00000000000..bf53a335066 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe092.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..b9ab198e946 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe093.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_POWER_ALL/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_ALL/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_ALL/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_ALL/test.desc new file mode 100644 index 00000000000..1a6b58fc5bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPC/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPC/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPC/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPC/test.desc new file mode 100644 index 00000000000..1d9a71930b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc new file mode 100644 index 00000000000..1946a5721a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_PSO_ALL/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_ALL/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_ALL/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_ALL/test.desc new file mode 100644 index 00000000000..f2d4961f240 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPC/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPC/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPC/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPC/test.desc new file mode 100644 index 00000000000..dc8e3a29862 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc new file mode 100644 index 00000000000..b3db1da246e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_RMO_ALL/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_ALL/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_ALL/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_ALL/test.desc new file mode 100644 index 00000000000..483e8460426 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPC/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPC/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPC/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPC/test.desc new file mode 100644 index 00000000000..d0c26f76986 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc new file mode 100644 index 00000000000..9d6c80b0936 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/test.desc new file mode 100644 index 00000000000..409efa2c702 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe093.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_TSO_ALL/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_ALL/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_ALL/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_ALL/test.desc new file mode 100644 index 00000000000..69dd2d5b732 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPC/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPC/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPC/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPC/test.desc new file mode 100644 index 00000000000..39acb45d7cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/safe093.c b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/safe093.c new file mode 100644 index 00000000000..c9ba71d9e72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/safe093.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc new file mode 100644 index 00000000000..81ede22e555 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe093.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..a39a38a087b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe094.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_POWER_ALL/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_ALL/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_ALL/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_ALL/test.desc new file mode 100644 index 00000000000..3c2560ee8a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe094.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPC/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPC/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPC/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPC/test.desc new file mode 100644 index 00000000000..8ffe8b30c05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe094.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/test.desc new file mode 100644 index 00000000000..e4dcbc2242a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe094.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/test.desc new file mode 100644 index 00000000000..5cfd91c0796 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe094.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/test.desc new file mode 100644 index 00000000000..4c541f31ff4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe094.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc new file mode 100644 index 00000000000..87a41a08fe4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe094.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/test.desc new file mode 100644 index 00000000000..2997ac398ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe094.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/test.desc new file mode 100644 index 00000000000..5dc55814738 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe094.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc new file mode 100644 index 00000000000..18ea4a98a89 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe094.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/test.desc new file mode 100644 index 00000000000..a0e10aa7280 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe094.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/test.desc new file mode 100644 index 00000000000..3748dac032d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe094.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/test.desc new file mode 100644 index 00000000000..adb805489c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe094.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/safe094.c b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/safe094.c new file mode 100644 index 00000000000..d24a8399c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/safe094.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc new file mode 100644 index 00000000000..66883c47272 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe094.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..dc0b2513b3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe095.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_POWER_ALL/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_ALL/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_ALL/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_ALL/test.desc new file mode 100644 index 00000000000..1b5b7de6fe1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPC/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPC/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPC/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPC/test.desc new file mode 100644 index 00000000000..04473068ba4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc new file mode 100644 index 00000000000..f3f44fa7d17 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_PSO_ALL/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_ALL/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_ALL/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_ALL/test.desc new file mode 100644 index 00000000000..7140299af4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPC/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPC/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPC/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPC/test.desc new file mode 100644 index 00000000000..c809faa6b58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc new file mode 100644 index 00000000000..ccd42138b47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_RMO_ALL/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_ALL/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_ALL/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_ALL/test.desc new file mode 100644 index 00000000000..9386055e92e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPC/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPC/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPC/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPC/test.desc new file mode 100644 index 00000000000..63093b13505 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc new file mode 100644 index 00000000000..5a6dcb2ce3b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/test.desc new file mode 100644 index 00000000000..012833b6064 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe095.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_TSO_ALL/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_ALL/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_ALL/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_ALL/test.desc new file mode 100644 index 00000000000..915da10397d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPC/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPC/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPC/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPC/test.desc new file mode 100644 index 00000000000..9640c7e3b32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/safe095.c b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/safe095.c new file mode 100644 index 00000000000..3278705fd5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/safe095.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc new file mode 100644 index 00000000000..9f4394f9232 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe095.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..8f9783f8552 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe096.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_POWER_ALL/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_ALL/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_ALL/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_ALL/test.desc new file mode 100644 index 00000000000..6ca7d39ff96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPC/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPC/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPC/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPC/test.desc new file mode 100644 index 00000000000..0fffa82f765 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc new file mode 100644 index 00000000000..fe78c1d4596 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_PSO_ALL/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_ALL/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_ALL/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_ALL/test.desc new file mode 100644 index 00000000000..4ed1357f7cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPC/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPC/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPC/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPC/test.desc new file mode 100644 index 00000000000..1f86119d3f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc new file mode 100644 index 00000000000..5a9ac9d95db --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_RMO_ALL/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_ALL/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_ALL/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_ALL/test.desc new file mode 100644 index 00000000000..de72d880483 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPC/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPC/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPC/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPC/test.desc new file mode 100644 index 00000000000..0c2837af37a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc new file mode 100644 index 00000000000..1e3344ebe88 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/test.desc new file mode 100644 index 00000000000..469b7f7bcbb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe096.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_TSO_ALL/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_ALL/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_ALL/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_ALL/test.desc new file mode 100644 index 00000000000..6c099a93877 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPC/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPC/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPC/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPC/test.desc new file mode 100644 index 00000000000..e2f7294b804 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/safe096.c b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/safe096.c new file mode 100644 index 00000000000..857913199a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/safe096.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc new file mode 100644 index 00000000000..109710e3f02 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe096.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..8e077b0be4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe097.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_POWER_ALL/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_ALL/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_ALL/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_ALL/test.desc new file mode 100644 index 00000000000..2761bbba82b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPC/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPC/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPC/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPC/test.desc new file mode 100644 index 00000000000..da3bf41b31d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc new file mode 100644 index 00000000000..a5df368d5f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_PSO_ALL/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_ALL/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_ALL/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_ALL/test.desc new file mode 100644 index 00000000000..c2f226b2fc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPC/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPC/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPC/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPC/test.desc new file mode 100644 index 00000000000..34d53920be4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc new file mode 100644 index 00000000000..83ea190a8e6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_RMO_ALL/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_ALL/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_ALL/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_ALL/test.desc new file mode 100644 index 00000000000..42cca7ffb62 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPC/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPC/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPC/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPC/test.desc new file mode 100644 index 00000000000..faba3cb73da --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc new file mode 100644 index 00000000000..9e908fb063c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/test.desc new file mode 100644 index 00000000000..7647eddbb35 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe097.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_TSO_ALL/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_ALL/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_ALL/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_ALL/test.desc new file mode 100644 index 00000000000..709847e05c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPC/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPC/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPC/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPC/test.desc new file mode 100644 index 00000000000..1ac9e96ddd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/safe097.c b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/safe097.c new file mode 100644 index 00000000000..a0694b683e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/safe097.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = 2; + y = __unbuffered_p1_r1; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r3 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc new file mode 100644 index 00000000000..95d16771159 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe097.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..281921bd505 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe098.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/test.desc new file mode 100644 index 00000000000..64845039407 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/test.desc new file mode 100644 index 00000000000..ab346753f5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc new file mode 100644 index 00000000000..92104671610 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/test.desc new file mode 100644 index 00000000000..c775f0fea7e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/test.desc new file mode 100644 index 00000000000..69f5312badd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc new file mode 100644 index 00000000000..29a83e54237 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/test.desc new file mode 100644 index 00000000000..1f9d6e8c2f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/test.desc new file mode 100644 index 00000000000..8f820a01d5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc new file mode 100644 index 00000000000..a5db7c0f662 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/test.desc new file mode 100644 index 00000000000..d42a9c9cf1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe098.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/test.desc new file mode 100644 index 00000000000..5a6fa261029 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/test.desc new file mode 100644 index 00000000000..f2ae1e23faf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/safe098.c b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/safe098.c new file mode 100644 index 00000000000..cd9be0dc9bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/safe098.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc new file mode 100644 index 00000000000..d5ae5d4b928 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe098.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..fff487fa0da --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe099.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_POWER_ALL/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_ALL/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_ALL/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_ALL/test.desc new file mode 100644 index 00000000000..1ef910aec94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPC/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPC/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPC/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPC/test.desc new file mode 100644 index 00000000000..62239a1d03f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc new file mode 100644 index 00000000000..9b282bb1dbe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_PSO_ALL/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_ALL/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_ALL/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_ALL/test.desc new file mode 100644 index 00000000000..5ba533df4ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPC/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPC/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPC/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPC/test.desc new file mode 100644 index 00000000000..2dfd237b8e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc new file mode 100644 index 00000000000..26d5a389970 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_RMO_ALL/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_ALL/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_ALL/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_ALL/test.desc new file mode 100644 index 00000000000..a433a8d1df5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPC/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPC/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPC/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPC/test.desc new file mode 100644 index 00000000000..3679f9a85df --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc new file mode 100644 index 00000000000..66293d798b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/test.desc new file mode 100644 index 00000000000..233f84d0f95 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe099.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_TSO_ALL/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_ALL/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_ALL/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_ALL/test.desc new file mode 100644 index 00000000000..4e1fbad1cc4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPC/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPC/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPC/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPC/test.desc new file mode 100644 index 00000000000..3d3f8ed3ec0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/safe099.c b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/safe099.c new file mode 100644 index 00000000000..03d290fec77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/safe099.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc new file mode 100644 index 00000000000..844c630c316 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe099.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..64c2de08725 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe100.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_POWER_ALL/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_ALL/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_ALL/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_ALL/test.desc new file mode 100644 index 00000000000..1c98633a633 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe100.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPC/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPC/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPC/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPC/test.desc new file mode 100644 index 00000000000..2f6ad5310cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe100.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_PSO_ALL/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_ALL/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_ALL/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_ALL/test.desc new file mode 100644 index 00000000000..6178ee223e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe100.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPC/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPC/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPC/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPC/test.desc new file mode 100644 index 00000000000..8de9be5a752 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe100.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc new file mode 100644 index 00000000000..cdf3b25eaee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe100.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_RMO_ALL/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_ALL/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_ALL/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_ALL/test.desc new file mode 100644 index 00000000000..1c69cf50083 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe100.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPC/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPC/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPC/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPC/test.desc new file mode 100644 index 00000000000..eaccb4fec73 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe100.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc new file mode 100644 index 00000000000..b136edc1a89 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe100.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/test.desc new file mode 100644 index 00000000000..c209db1c22a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe100.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_TSO_ALL/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_ALL/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_ALL/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_ALL/test.desc new file mode 100644 index 00000000000..ad22ff35b60 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe100.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPC/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPC/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPC/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPC/test.desc new file mode 100644 index 00000000000..253c380e776 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe100.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/safe100.c b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/safe100.c new file mode 100644 index 00000000000..cd96f181cff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/safe100.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc new file mode 100644 index 00000000000..34dd465bad4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe100.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..7c8c72f63db --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe101.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_POWER_ALL/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_ALL/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_ALL/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_ALL/test.desc new file mode 100644 index 00000000000..edd0150d874 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPC/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPC/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPC/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPC/test.desc new file mode 100644 index 00000000000..e4989da2a01 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc new file mode 100644 index 00000000000..a1b74eb5c8f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_PSO_ALL/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_ALL/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_ALL/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_ALL/test.desc new file mode 100644 index 00000000000..0530d611b6c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPC/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPC/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPC/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPC/test.desc new file mode 100644 index 00000000000..f4894d715f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc new file mode 100644 index 00000000000..9b4a558ebe1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_RMO_ALL/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_ALL/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_ALL/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_ALL/test.desc new file mode 100644 index 00000000000..e149f0e5cd1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPC/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPC/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPC/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPC/test.desc new file mode 100644 index 00000000000..32abb9ee8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc new file mode 100644 index 00000000000..f6a7a18e1f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/test.desc new file mode 100644 index 00000000000..13afd66ef43 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe101.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_TSO_ALL/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_ALL/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_ALL/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_ALL/test.desc new file mode 100644 index 00000000000..8005ef7e404 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPC/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPC/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPC/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPC/test.desc new file mode 100644 index 00000000000..90c9dfbae43 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/safe101.c b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/safe101.c new file mode 100644 index 00000000000..3ab381f16fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/safe101.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + y = __unbuffered_p2_r1; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc new file mode 100644 index 00000000000..8480ffd97f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe101.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..2fdeebb6e0f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe102.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_POWER_ALL/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_ALL/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_ALL/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_ALL/test.desc new file mode 100644 index 00000000000..bfa9fb1f606 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe102.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPC/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPC/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPC/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPC/test.desc new file mode 100644 index 00000000000..86f5e5a8712 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe102.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_PSO_ALL/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_ALL/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_ALL/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_ALL/test.desc new file mode 100644 index 00000000000..6fba03658d1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe102.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPC/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPC/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPC/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPC/test.desc new file mode 100644 index 00000000000..5cebc6beb6f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe102.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc new file mode 100644 index 00000000000..0ba11f0a71f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe102.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_RMO_ALL/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_ALL/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_ALL/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_ALL/test.desc new file mode 100644 index 00000000000..6e5f17e929b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe102.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPC/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPC/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPC/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPC/test.desc new file mode 100644 index 00000000000..51b4a124ced --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe102.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc new file mode 100644 index 00000000000..f2b49ac0c7a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe102.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/test.desc new file mode 100644 index 00000000000..b60819a57e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe102.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_TSO_ALL/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_ALL/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_ALL/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_ALL/test.desc new file mode 100644 index 00000000000..9e4ad76f048 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe102.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPC/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPC/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPC/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPC/test.desc new file mode 100644 index 00000000000..0baca51c354 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe102.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/safe102.c b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/safe102.c new file mode 100644 index 00000000000..c92425f68d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/safe102.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc new file mode 100644 index 00000000000..aec6f346e74 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe102.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..7ae701a073c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe103.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_POWER_ALL/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_ALL/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_ALL/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_ALL/test.desc new file mode 100644 index 00000000000..230f94dd927 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe103.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPC/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPC/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPC/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPC/test.desc new file mode 100644 index 00000000000..f381fe624ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe103.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/test.desc new file mode 100644 index 00000000000..bc8d12513a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe103.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_PSO_ALL/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_ALL/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_ALL/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_ALL/test.desc new file mode 100644 index 00000000000..d532dde5801 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe103.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPC/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPC/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPC/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPC/test.desc new file mode 100644 index 00000000000..0513d9033c5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe103.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc new file mode 100644 index 00000000000..b20acaa5da0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe103.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_RMO_ALL/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_ALL/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_ALL/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_ALL/test.desc new file mode 100644 index 00000000000..f960afb9d4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe103.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPC/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPC/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPC/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPC/test.desc new file mode 100644 index 00000000000..4254bacaa07 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe103.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc new file mode 100644 index 00000000000..2d23140f25a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe103.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/test.desc new file mode 100644 index 00000000000..abdafd72ba3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe103.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_TSO_ALL/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_ALL/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_ALL/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_ALL/test.desc new file mode 100644 index 00000000000..a8e834c04f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe103.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPC/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPC/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPC/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPC/test.desc new file mode 100644 index 00000000000..43d06889e61 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe103.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/safe103.c b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/safe103.c new file mode 100644 index 00000000000..55f21d15ded --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/safe103.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc new file mode 100644 index 00000000000..8aa5d8e498c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe103.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..ba7f233e73f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe104.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_POWER_ALL/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_ALL/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_ALL/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_ALL/test.desc new file mode 100644 index 00000000000..024216db6e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe104.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPC/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPC/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPC/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPC/test.desc new file mode 100644 index 00000000000..55451caa3be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe104.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_PSO_ALL/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_ALL/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_ALL/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_ALL/test.desc new file mode 100644 index 00000000000..d05c5c31661 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe104.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPC/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPC/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPC/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPC/test.desc new file mode 100644 index 00000000000..763ddd79033 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe104.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc new file mode 100644 index 00000000000..09f95d84395 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe104.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_RMO_ALL/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_ALL/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_ALL/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_ALL/test.desc new file mode 100644 index 00000000000..ddde48c5bf0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe104.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPC/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPC/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPC/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPC/test.desc new file mode 100644 index 00000000000..e6317cc2b33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe104.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc new file mode 100644 index 00000000000..9ab91bd8d7e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe104.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/test.desc new file mode 100644 index 00000000000..3a64b166838 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe104.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/test.desc new file mode 100644 index 00000000000..768a54731f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe104.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/test.desc new file mode 100644 index 00000000000..68477c7a159 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe104.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/safe104.c b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/safe104.c new file mode 100644 index 00000000000..0cfd27eed77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/safe104.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc new file mode 100644 index 00000000000..a3d43c0a857 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe104.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..4e84205910c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe105.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/test.desc new file mode 100644 index 00000000000..c5f5412693f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe105.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/test.desc new file mode 100644 index 00000000000..d91c4c13ac1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe105.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/test.desc new file mode 100644 index 00000000000..e54d3dc5944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe105.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/test.desc new file mode 100644 index 00000000000..ff7603a6c72 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe105.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc new file mode 100644 index 00000000000..0609ce4646a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe105.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/test.desc new file mode 100644 index 00000000000..b2fb757d028 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe105.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/test.desc new file mode 100644 index 00000000000..b9be9ad3028 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe105.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc new file mode 100644 index 00000000000..81cd7371faa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe105.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/test.desc new file mode 100644 index 00000000000..b5c7e11cd43 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe105.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/test.desc new file mode 100644 index 00000000000..0dd0f0cc538 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe105.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/test.desc new file mode 100644 index 00000000000..cedcb3ac33b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe105.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/safe105.c b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/safe105.c new file mode 100644 index 00000000000..b6a69d5cbe5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/safe105.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc new file mode 100644 index 00000000000..04832dd1a0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe105.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..c743e0b21ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe106.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_POWER_ALL/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_ALL/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_ALL/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_ALL/test.desc new file mode 100644 index 00000000000..3fc5d3786c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPC/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPC/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPC/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPC/test.desc new file mode 100644 index 00000000000..09af15031b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc new file mode 100644 index 00000000000..1416a9c7dfd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_PSO_ALL/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_ALL/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_ALL/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_ALL/test.desc new file mode 100644 index 00000000000..9389dc092ca --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPC/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPC/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPC/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPC/test.desc new file mode 100644 index 00000000000..236b51b5ee2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc new file mode 100644 index 00000000000..5b18be92d59 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_RMO_ALL/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_ALL/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_ALL/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_ALL/test.desc new file mode 100644 index 00000000000..747d51e1031 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPC/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPC/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPC/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPC/test.desc new file mode 100644 index 00000000000..7a2fa406eea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc new file mode 100644 index 00000000000..bd40b8258f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/test.desc new file mode 100644 index 00000000000..b2dcde5f150 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe106.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_TSO_ALL/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_ALL/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_ALL/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_ALL/test.desc new file mode 100644 index 00000000000..57ef2605a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPC/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPC/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPC/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPC/test.desc new file mode 100644 index 00000000000..0ecf2dbfbff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/safe106.c b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/safe106.c new file mode 100644 index 00000000000..e72fcf1626f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/safe106.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc new file mode 100644 index 00000000000..1391c5edbe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe106.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..60fcc16b193 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe107.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_POWER_ALL/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_ALL/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_ALL/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_ALL/test.desc new file mode 100644 index 00000000000..282f6f01f3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe107.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPC/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPC/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPC/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPC/test.desc new file mode 100644 index 00000000000..e2feb5cbd7e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe107.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_PSO_ALL/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_ALL/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_ALL/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_ALL/test.desc new file mode 100644 index 00000000000..f58bc6dc6bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe107.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPC/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPC/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPC/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPC/test.desc new file mode 100644 index 00000000000..d5b38325abe --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe107.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc new file mode 100644 index 00000000000..5e1e3f6c1c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe107.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_RMO_ALL/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_ALL/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_ALL/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_ALL/test.desc new file mode 100644 index 00000000000..7fd7f1e9de1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe107.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPC/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPC/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPC/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPC/test.desc new file mode 100644 index 00000000000..d2b58e5c6ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe107.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc new file mode 100644 index 00000000000..63852618aa8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe107.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/test.desc new file mode 100644 index 00000000000..0ebadb5a6b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe107.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_TSO_ALL/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_ALL/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_ALL/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_ALL/test.desc new file mode 100644 index 00000000000..e8b317d3f37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe107.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPC/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPC/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPC/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPC/test.desc new file mode 100644 index 00000000000..02482bf67c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe107.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/safe107.c b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/safe107.c new file mode 100644 index 00000000000..fd502d2933b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/safe107.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + lwfence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc new file mode 100644 index 00000000000..c81e39a4b11 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe107.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..43ab66b6b59 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe108.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_POWER_ALL/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_ALL/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_ALL/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_ALL/test.desc new file mode 100644 index 00000000000..d06f11086d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe108.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPC/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPC/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPC/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPC/test.desc new file mode 100644 index 00000000000..585237f3c9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe108.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/test.desc new file mode 100644 index 00000000000..0336c612859 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe108.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_PSO_ALL/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_ALL/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_ALL/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_ALL/test.desc new file mode 100644 index 00000000000..a237fb136fb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe108.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPC/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPC/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPC/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPC/test.desc new file mode 100644 index 00000000000..17c1554ce71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe108.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc new file mode 100644 index 00000000000..d058a5cb894 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe108.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_RMO_ALL/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_ALL/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_ALL/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_ALL/test.desc new file mode 100644 index 00000000000..ef5a8db6210 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe108.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPC/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPC/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPC/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPC/test.desc new file mode 100644 index 00000000000..403fcc5abf7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe108.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc new file mode 100644 index 00000000000..115fddd32c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe108.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/test.desc new file mode 100644 index 00000000000..7f920ed602a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe108.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_TSO_ALL/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_ALL/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_ALL/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_ALL/test.desc new file mode 100644 index 00000000000..19f647b4097 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe108.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPC/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPC/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPC/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPC/test.desc new file mode 100644 index 00000000000..aad6d964f51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe108.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/safe108.c b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/safe108.c new file mode 100644 index 00000000000..f7245072972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/safe108.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc new file mode 100644 index 00000000000..174167418f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe108.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..905706d140c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe109.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_POWER_ALL/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_ALL/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_ALL/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_ALL/test.desc new file mode 100644 index 00000000000..30b2eeda43b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe109.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPC/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPC/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPC/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPC/test.desc new file mode 100644 index 00000000000..d05b16b92db --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe109.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/test.desc new file mode 100644 index 00000000000..eff4dfbc58d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe109.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_PSO_ALL/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_ALL/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_ALL/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_ALL/test.desc new file mode 100644 index 00000000000..d9d8e01dee3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe109.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPC/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPC/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPC/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPC/test.desc new file mode 100644 index 00000000000..ce452c13fb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe109.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc new file mode 100644 index 00000000000..a5c685b4293 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe109.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_RMO_ALL/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_ALL/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_ALL/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_ALL/test.desc new file mode 100644 index 00000000000..4a9edd7de80 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe109.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPC/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPC/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPC/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPC/test.desc new file mode 100644 index 00000000000..56252c89b31 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe109.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc new file mode 100644 index 00000000000..5866aac4578 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe109.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/test.desc new file mode 100644 index 00000000000..74ed718e781 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe109.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_TSO_ALL/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_ALL/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_ALL/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_ALL/test.desc new file mode 100644 index 00000000000..cd73cbb2af5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe109.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPC/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPC/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPC/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPC/test.desc new file mode 100644 index 00000000000..55447d60eab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe109.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/safe109.c b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/safe109.c new file mode 100644 index 00000000000..41710aa54f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/safe109.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc new file mode 100644 index 00000000000..e4043bec362 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe109.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b7a66fa2850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe110.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_POWER_ALL/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_ALL/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_ALL/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_ALL/test.desc new file mode 100644 index 00000000000..23278f0cde5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe110.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPC/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPC/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPC/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPC/test.desc new file mode 100644 index 00000000000..0cc03187925 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe110.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_PSO_ALL/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_ALL/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_ALL/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_ALL/test.desc new file mode 100644 index 00000000000..cea16eb0d31 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe110.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPC/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPC/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPC/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPC/test.desc new file mode 100644 index 00000000000..35f155d0b59 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe110.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc new file mode 100644 index 00000000000..9ff8b3826b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe110.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_RMO_ALL/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_ALL/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_ALL/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_ALL/test.desc new file mode 100644 index 00000000000..f41d39c6980 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe110.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPC/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPC/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPC/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPC/test.desc new file mode 100644 index 00000000000..c18af5915bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe110.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc new file mode 100644 index 00000000000..f5b76010c71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe110.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/test.desc new file mode 100644 index 00000000000..1e9259f286e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe110.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_TSO_ALL/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_ALL/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_ALL/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_ALL/test.desc new file mode 100644 index 00000000000..15f970110e6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe110.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPC/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPC/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPC/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPC/test.desc new file mode 100644 index 00000000000..464b11c392b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe110.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/safe110.c b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/safe110.c new file mode 100644 index 00000000000..591a5189baf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/safe110.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 2; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc new file mode 100644 index 00000000000..25a341cf856 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe110.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..1befdd4a9d6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe111.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_POWER_ALL/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_ALL/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_ALL/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_ALL/test.desc new file mode 100644 index 00000000000..2300318e29f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPC/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPC/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPC/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPC/test.desc new file mode 100644 index 00000000000..0ed172fdbfb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc new file mode 100644 index 00000000000..8205880d3c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_PSO_ALL/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_ALL/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_ALL/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_ALL/test.desc new file mode 100644 index 00000000000..f1847985fe7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPC/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPC/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPC/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPC/test.desc new file mode 100644 index 00000000000..eb4610154bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc new file mode 100644 index 00000000000..942c3f29c7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_RMO_ALL/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_ALL/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_ALL/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_ALL/test.desc new file mode 100644 index 00000000000..ffa16e2529f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPC/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPC/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPC/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPC/test.desc new file mode 100644 index 00000000000..a7902959b8c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc new file mode 100644 index 00000000000..cc432090a95 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/test.desc new file mode 100644 index 00000000000..8870392e8b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe111.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_TSO_ALL/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_ALL/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_ALL/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_ALL/test.desc new file mode 100644 index 00000000000..c61a4b078f5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPC/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPC/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPC/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPC/test.desc new file mode 100644 index 00000000000..1db9edb1159 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/safe111.c b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/safe111.c new file mode 100644 index 00000000000..3caa44f68a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/safe111.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = 1; + x = __unbuffered_p2_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = x; + fence(); + __unbuffered_p3_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0 && + __unbuffered_p3_r1 == 1 && __unbuffered_p3_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc new file mode 100644 index 00000000000..caa9fb150a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe111.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..f01a98530c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe112.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_POWER_ALL/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_ALL/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_ALL/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_ALL/test.desc new file mode 100644 index 00000000000..2c4c083d9be --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe112.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPC/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPC/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPC/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPC/test.desc new file mode 100644 index 00000000000..cfc8fc75417 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe112.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/test.desc new file mode 100644 index 00000000000..b6c641ae190 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe112.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/test.desc new file mode 100644 index 00000000000..6e13d042d9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe112.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/test.desc new file mode 100644 index 00000000000..90cf225f5d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe112.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc new file mode 100644 index 00000000000..16df902d878 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe112.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_RMO_ALL/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_ALL/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_ALL/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_ALL/test.desc new file mode 100644 index 00000000000..6d72d4d581b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe112.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPC/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPC/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPC/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPC/test.desc new file mode 100644 index 00000000000..07a5c6bfa27 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe112.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc new file mode 100644 index 00000000000..91194c7247f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe112.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/test.desc new file mode 100644 index 00000000000..7239ab3c218 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe112.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/test.desc new file mode 100644 index 00000000000..e052850767d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe112.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/test.desc new file mode 100644 index 00000000000..c62075ecb2c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe112.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/safe112.c b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/safe112.c new file mode 100644 index 00000000000..4da53a66a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/safe112.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc new file mode 100644 index 00000000000..4ea8eac0fc1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe112.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..9f363e30a45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe113.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_POWER_ALL/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_ALL/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_ALL/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_ALL/test.desc new file mode 100644 index 00000000000..bee1fcc297b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPC/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPC/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPC/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPC/test.desc new file mode 100644 index 00000000000..8026545e276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc new file mode 100644 index 00000000000..e69ac7902ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_PSO_ALL/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_ALL/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_ALL/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_ALL/test.desc new file mode 100644 index 00000000000..329d41d0b30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPC/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPC/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPC/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPC/test.desc new file mode 100644 index 00000000000..39299e4d71b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc new file mode 100644 index 00000000000..d6807127915 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_RMO_ALL/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_ALL/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_ALL/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_ALL/test.desc new file mode 100644 index 00000000000..c434afd4716 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPC/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPC/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPC/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPC/test.desc new file mode 100644 index 00000000000..e6f53cfcddb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc new file mode 100644 index 00000000000..5c106675b8c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/test.desc new file mode 100644 index 00000000000..0218d62b13d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe113.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_TSO_ALL/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_ALL/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_ALL/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_ALL/test.desc new file mode 100644 index 00000000000..021bd2f43bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPC/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPC/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPC/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPC/test.desc new file mode 100644 index 00000000000..8c150d6ca5c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/safe113.c b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/safe113.c new file mode 100644 index 00000000000..93704cc107e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/safe113.c @@ -0,0 +1,76 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc new file mode 100644 index 00000000000..e5427952aee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe113.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..c882e8f37f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe114.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_POWER_ALL/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_ALL/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_ALL/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_ALL/test.desc new file mode 100644 index 00000000000..c6310436364 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPC/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPC/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPC/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPC/test.desc new file mode 100644 index 00000000000..c5bf8bb6896 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc new file mode 100644 index 00000000000..b2951d714dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_PSO_ALL/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_ALL/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_ALL/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_ALL/test.desc new file mode 100644 index 00000000000..4f1af4a5a36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPC/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPC/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPC/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPC/test.desc new file mode 100644 index 00000000000..2abadef880b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc new file mode 100644 index 00000000000..b8cbc392d3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_RMO_ALL/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_ALL/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_ALL/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_ALL/test.desc new file mode 100644 index 00000000000..0b16bdbd8d5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPC/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPC/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPC/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPC/test.desc new file mode 100644 index 00000000000..2904acae24d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc new file mode 100644 index 00000000000..fc7ced57cee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/test.desc new file mode 100644 index 00000000000..af4bce13dcb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe114.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_TSO_ALL/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_ALL/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_ALL/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_ALL/test.desc new file mode 100644 index 00000000000..5f90f5e0cee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPC/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPC/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPC/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPC/test.desc new file mode 100644 index 00000000000..2ac04712259 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/safe114.c b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/safe114.c new file mode 100644 index 00000000000..c7c116acd75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/safe114.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 2; + *(&x + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc new file mode 100644 index 00000000000..1123706ca6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe114.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..628438daa38 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe115.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_POWER_ALL/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_ALL/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_ALL/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_ALL/test.desc new file mode 100644 index 00000000000..1a286038616 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPC/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPC/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPC/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPC/test.desc new file mode 100644 index 00000000000..5d4da1204d7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc new file mode 100644 index 00000000000..caa8485486d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_PSO_ALL/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_ALL/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_ALL/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_ALL/test.desc new file mode 100644 index 00000000000..373a27d90a0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPC/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPC/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPC/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPC/test.desc new file mode 100644 index 00000000000..a9edd5cdbfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc new file mode 100644 index 00000000000..9c5decb97dc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_RMO_ALL/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_ALL/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_ALL/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_ALL/test.desc new file mode 100644 index 00000000000..0f3a5f5e249 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPC/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPC/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPC/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPC/test.desc new file mode 100644 index 00000000000..da9a47ad690 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc new file mode 100644 index 00000000000..1b38a309d84 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/test.desc new file mode 100644 index 00000000000..372209a1788 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe115.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/test.desc new file mode 100644 index 00000000000..35541503474 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/test.desc new file mode 100644 index 00000000000..5d6235ac88c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/safe115.c b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/safe115.c new file mode 100644 index 00000000000..ce349d42460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/safe115.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p1_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc new file mode 100644 index 00000000000..50ef10e6096 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe115.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..dcc6af99c0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe116.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_POWER_ALL/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_ALL/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_ALL/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_ALL/test.desc new file mode 100644 index 00000000000..1e154afd5a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe116.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPC/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPC/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPC/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPC/test.desc new file mode 100644 index 00000000000..65bfa094296 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe116.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/test.desc new file mode 100644 index 00000000000..3b61f06c7fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe116.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/test.desc new file mode 100644 index 00000000000..2a316aba0b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe116.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/test.desc new file mode 100644 index 00000000000..f27ea0984e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe116.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc new file mode 100644 index 00000000000..bbac7409170 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe116.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/test.desc new file mode 100644 index 00000000000..79714bf5f8b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe116.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/test.desc new file mode 100644 index 00000000000..8de1e36318a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe116.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc new file mode 100644 index 00000000000..cf5faeb8e0f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe116.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/test.desc new file mode 100644 index 00000000000..22e6cefb561 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe116.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/test.desc new file mode 100644 index 00000000000..fa35ca6d703 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe116.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/test.desc new file mode 100644 index 00000000000..445d16d52a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe116.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/safe116.c b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/safe116.c new file mode 100644 index 00000000000..2c98f76b899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/safe116.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + lwfence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc new file mode 100644 index 00000000000..0a393c4809f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe116.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..fee34599fe8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe117.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_POWER_ALL/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_ALL/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_ALL/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_ALL/test.desc new file mode 100644 index 00000000000..c6f6c571147 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPC/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPC/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPC/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPC/test.desc new file mode 100644 index 00000000000..6fb1e60c60a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc new file mode 100644 index 00000000000..68025de410b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_PSO_ALL/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_ALL/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_ALL/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_ALL/test.desc new file mode 100644 index 00000000000..2c538c9ead0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPC/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPC/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPC/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPC/test.desc new file mode 100644 index 00000000000..3428378b912 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc new file mode 100644 index 00000000000..92c57336ddf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_RMO_ALL/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_ALL/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_ALL/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_ALL/test.desc new file mode 100644 index 00000000000..7cb51fa6be7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPC/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPC/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPC/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPC/test.desc new file mode 100644 index 00000000000..dffe4a53587 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc new file mode 100644 index 00000000000..24580fa1dab --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/test.desc new file mode 100644 index 00000000000..ff74b5dfacf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe117.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_TSO_ALL/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_ALL/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_ALL/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_ALL/test.desc new file mode 100644 index 00000000000..84c210e9cc2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPC/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPC/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPC/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPC/test.desc new file mode 100644 index 00000000000..32db18ceed5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/safe117.c b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/safe117.c new file mode 100644 index 00000000000..4a52128ff3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/safe117.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc new file mode 100644 index 00000000000..c094747e068 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe117.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..bc15247d985 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe118.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_POWER_ALL/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_ALL/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_ALL/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_ALL/test.desc new file mode 100644 index 00000000000..40dfa25c1b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPC/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPC/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPC/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPC/test.desc new file mode 100644 index 00000000000..8d64356c748 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc new file mode 100644 index 00000000000..eaf041196f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_PSO_ALL/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_ALL/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_ALL/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_ALL/test.desc new file mode 100644 index 00000000000..928a1d80805 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPC/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPC/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPC/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPC/test.desc new file mode 100644 index 00000000000..b1a1389c6ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc new file mode 100644 index 00000000000..7470b0d00ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_RMO_ALL/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_ALL/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_ALL/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_ALL/test.desc new file mode 100644 index 00000000000..a7fd70b0973 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPC/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPC/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPC/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPC/test.desc new file mode 100644 index 00000000000..698f33206fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc new file mode 100644 index 00000000000..195f8c7c607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/test.desc new file mode 100644 index 00000000000..2b125cc3e38 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe118.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_TSO_ALL/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_ALL/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_ALL/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_ALL/test.desc new file mode 100644 index 00000000000..882dadc3e2b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPC/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPC/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPC/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPC/test.desc new file mode 100644 index 00000000000..e22629c6a7b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/safe118.c b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/safe118.c new file mode 100644 index 00000000000..9e642eed161 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/safe118.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + lwfence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc new file mode 100644 index 00000000000..d3648ca8486 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe118.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..5459c5aa5e1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe119.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_POWER_ALL/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_ALL/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_ALL/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_ALL/test.desc new file mode 100644 index 00000000000..c8b76df1b7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe119.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPC/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPC/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPC/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPC/test.desc new file mode 100644 index 00000000000..bdba116ed70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe119.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/test.desc new file mode 100644 index 00000000000..3f336874977 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe119.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_PSO_ALL/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_ALL/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_ALL/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_ALL/test.desc new file mode 100644 index 00000000000..af4a82c2e4b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe119.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPC/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPC/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPC/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPC/test.desc new file mode 100644 index 00000000000..a6ceb1d8def --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe119.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc new file mode 100644 index 00000000000..e2e48b63dc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe119.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_RMO_ALL/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_ALL/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_ALL/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_ALL/test.desc new file mode 100644 index 00000000000..2665f75de06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe119.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPC/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPC/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPC/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPC/test.desc new file mode 100644 index 00000000000..4b4c4a9d3ac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe119.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc new file mode 100644 index 00000000000..e490e80e8f9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe119.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/test.desc new file mode 100644 index 00000000000..d47b4350d59 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe119.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_TSO_ALL/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_ALL/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_ALL/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_ALL/test.desc new file mode 100644 index 00000000000..b6d2ce89356 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe119.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPC/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPC/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPC/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPC/test.desc new file mode 100644 index 00000000000..6fe653ad7ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe119.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/safe119.c b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/safe119.c new file mode 100644 index 00000000000..d572f12c72b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/safe119.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 2; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 2 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc new file mode 100644 index 00000000000..b1c20d72f5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe119.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..7ec23a62f91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe120.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_POWER_ALL/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_ALL/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_ALL/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_ALL/test.desc new file mode 100644 index 00000000000..8b3f0b6a254 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPC/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPC/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPC/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPC/test.desc new file mode 100644 index 00000000000..1061be1d532 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc new file mode 100644 index 00000000000..368bff1b41c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_PSO_ALL/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_ALL/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_ALL/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_ALL/test.desc new file mode 100644 index 00000000000..1b6723038ae --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPC/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPC/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPC/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPC/test.desc new file mode 100644 index 00000000000..31f11b1d368 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc new file mode 100644 index 00000000000..ab74d0a2641 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_RMO_ALL/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_ALL/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_ALL/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_ALL/test.desc new file mode 100644 index 00000000000..d7a5c4f595c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPC/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPC/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPC/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPC/test.desc new file mode 100644 index 00000000000..dd6656f132f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc new file mode 100644 index 00000000000..475c73d35f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/test.desc new file mode 100644 index 00000000000..2572ce76f51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe120.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_TSO_ALL/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_ALL/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_ALL/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_ALL/test.desc new file mode 100644 index 00000000000..32bf11f728d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPC/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPC/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPC/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPC/test.desc new file mode 100644 index 00000000000..e22e4260019 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/safe120.c b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/safe120.c new file mode 100644 index 00000000000..38b17611f81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/safe120.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc new file mode 100644 index 00000000000..fde49d212c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe120.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..f57f1dad188 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe121.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_POWER_ALL/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_ALL/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_ALL/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_ALL/test.desc new file mode 100644 index 00000000000..e7fc4bc5f9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPC/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPC/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPC/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPC/test.desc new file mode 100644 index 00000000000..540a9cf33ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc new file mode 100644 index 00000000000..cabee8ddf4a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_PSO_ALL/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_ALL/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_ALL/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_ALL/test.desc new file mode 100644 index 00000000000..3710bac678f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPC/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPC/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPC/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPC/test.desc new file mode 100644 index 00000000000..5fb0ce761a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc new file mode 100644 index 00000000000..32d0cd574e1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_RMO_ALL/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_ALL/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_ALL/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_ALL/test.desc new file mode 100644 index 00000000000..01afa680982 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPC/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPC/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPC/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPC/test.desc new file mode 100644 index 00000000000..a278f5b03a0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc new file mode 100644 index 00000000000..4f20dba3ef5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/test.desc new file mode 100644 index 00000000000..cb9b56926c5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe121.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_TSO_ALL/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_ALL/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_ALL/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_ALL/test.desc new file mode 100644 index 00000000000..f1a622b6c44 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPC/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPC/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPC/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPC/test.desc new file mode 100644 index 00000000000..c76c5f98b93 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/safe121.c b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/safe121.c new file mode 100644 index 00000000000..6ed27727ad5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/safe121.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + z = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc new file mode 100644 index 00000000000..7de28f85400 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe121.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..2bd9c2651ce --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe122.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_POWER_ALL/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_ALL/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_ALL/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_ALL/test.desc new file mode 100644 index 00000000000..8c10df2e2b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe122.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPC/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPC/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPC/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPC/test.desc new file mode 100644 index 00000000000..4ffa1c2f322 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe122.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/test.desc new file mode 100644 index 00000000000..e29215b1e33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe122.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/test.desc new file mode 100644 index 00000000000..ae703b02acd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe122.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/test.desc new file mode 100644 index 00000000000..5b5aa2e9a63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe122.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc new file mode 100644 index 00000000000..b496905d00d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe122.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/test.desc new file mode 100644 index 00000000000..f6e1e713c12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe122.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/test.desc new file mode 100644 index 00000000000..2e4ea63427d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe122.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc new file mode 100644 index 00000000000..6bf3cccd111 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe122.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/test.desc new file mode 100644 index 00000000000..6334c2f01e5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe122.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/test.desc new file mode 100644 index 00000000000..b161c81f816 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe122.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/test.desc new file mode 100644 index 00000000000..28dac12aa78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe122.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/safe122.c b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/safe122.c new file mode 100644 index 00000000000..8074537bea3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/safe122.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = 1; + y = __unbuffered_p0_r1; + lwfence(); + __unbuffered_p0_r3 = 2; + y = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + fence(); + __unbuffered_p1_r3 = 1; + x = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = x; + fence(); + __unbuffered_p2_r3 = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_r1 == 2 && __unbuffered_p2_r1 == 1 && + __unbuffered_p2_r3 == 0), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc new file mode 100644 index 00000000000..08e41bb83a0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe122.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b2e5022988e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe123.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_POWER_ALL/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_ALL/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_ALL/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_ALL/test.desc new file mode 100644 index 00000000000..d5f9d7eea20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPC/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPC/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPC/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPC/test.desc new file mode 100644 index 00000000000..383e6121268 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc new file mode 100644 index 00000000000..4014bdf3aa7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_PSO_ALL/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_ALL/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_ALL/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_ALL/test.desc new file mode 100644 index 00000000000..030ecd8f200 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPC/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPC/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPC/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPC/test.desc new file mode 100644 index 00000000000..a3f2acac7ac --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc new file mode 100644 index 00000000000..ac648ed64e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_RMO_ALL/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_ALL/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_ALL/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_ALL/test.desc new file mode 100644 index 00000000000..c22bdc19670 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPC/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPC/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPC/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPC/test.desc new file mode 100644 index 00000000000..03e6a182ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc new file mode 100644 index 00000000000..77b16e0d034 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/test.desc new file mode 100644 index 00000000000..84212e17bdc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe123.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_TSO_ALL/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_ALL/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_ALL/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_ALL/test.desc new file mode 100644 index 00000000000..ab3fd901d8a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPC/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPC/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPC/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPC/test.desc new file mode 100644 index 00000000000..094aa4bca1c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/safe123.c b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/safe123.c new file mode 100644 index 00000000000..a62447bf8e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/safe123.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 2; + y = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_r1 == 2 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc new file mode 100644 index 00000000000..994a3e0cf35 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe123.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..5791c0768f9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe124.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_POWER_ALL/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_ALL/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_ALL/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_ALL/test.desc new file mode 100644 index 00000000000..721b26edf54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPC/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPC/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPC/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPC/test.desc new file mode 100644 index 00000000000..f11b22019db --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc new file mode 100644 index 00000000000..64d8c80158f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_PSO_ALL/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_ALL/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_ALL/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_ALL/test.desc new file mode 100644 index 00000000000..084641e9cc1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPC/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPC/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPC/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPC/test.desc new file mode 100644 index 00000000000..08a68251986 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc new file mode 100644 index 00000000000..56a27093a96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_RMO_ALL/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_ALL/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_ALL/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_ALL/test.desc new file mode 100644 index 00000000000..6a1a3ec74cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPC/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPC/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPC/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPC/test.desc new file mode 100644 index 00000000000..22954d53f76 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc new file mode 100644 index 00000000000..6d857428f27 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/test.desc new file mode 100644 index 00000000000..64d3daeca8a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe124.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_TSO_ALL/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_ALL/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_ALL/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_ALL/test.desc new file mode 100644 index 00000000000..284f144910a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPC/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPC/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPC/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPC/test.desc new file mode 100644 index 00000000000..2384a36e4fb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/safe124.c b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/safe124.c new file mode 100644 index 00000000000..9219c7ecaf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/safe124.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc new file mode 100644 index 00000000000..dc42f5f3c2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe124.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..2b29052790a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe125.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_POWER_ALL/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_ALL/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_ALL/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_ALL/test.desc new file mode 100644 index 00000000000..a67bc13829c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPC/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPC/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPC/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPC/test.desc new file mode 100644 index 00000000000..a0bff0d8f97 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc new file mode 100644 index 00000000000..469ea7cce88 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_PSO_ALL/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_ALL/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_ALL/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_ALL/test.desc new file mode 100644 index 00000000000..985940645a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPC/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPC/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPC/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPC/test.desc new file mode 100644 index 00000000000..50ccc6e038a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc new file mode 100644 index 00000000000..a6ba60395dc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_RMO_ALL/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_ALL/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_ALL/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_ALL/test.desc new file mode 100644 index 00000000000..0211a2e3110 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPC/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPC/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPC/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPC/test.desc new file mode 100644 index 00000000000..46dd74005ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc new file mode 100644 index 00000000000..b11bc36f821 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/test.desc new file mode 100644 index 00000000000..6a1e26e0ff1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe125.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_TSO_ALL/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_ALL/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_ALL/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_ALL/test.desc new file mode 100644 index 00000000000..175a3de6b13 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPC/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPC/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPC/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPC/test.desc new file mode 100644 index 00000000000..445f5f9c5d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/safe125.c b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/safe125.c new file mode 100644 index 00000000000..d321b83bf29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/safe125.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + fence(); + __unbuffered_p0_r3 = 1; + x = __unbuffered_p0_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + fence(); + __unbuffered_p1_r3 = 1; + y = __unbuffered_p1_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + fence(); + __unbuffered_p2_r3 = 1; + z = __unbuffered_p2_r3; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc new file mode 100644 index 00000000000..c2a44d109a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe125.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..362d249e93b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin000.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_ALL/test.desc new file mode 100644 index 00000000000..206a121cd6b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_POWER_ALL/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_ALL/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_ALL/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPC/test.desc new file mode 100644 index 00000000000..844c34c75f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPC/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPC/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPC/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_ALL/test.desc new file mode 100644 index 00000000000..14987c1a40d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_PSO_ALL/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_ALL/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_ALL/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPC/test.desc new file mode 100644 index 00000000000..11934155e15 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPC/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPC/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPC/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc new file mode 100644 index 00000000000..6048dc6b06b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_ALL/test.desc new file mode 100644 index 00000000000..0af8ec743c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_RMO_ALL/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_ALL/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_ALL/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPC/test.desc new file mode 100644 index 00000000000..e1a52cc7da5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPC/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPC/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPC/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc new file mode 100644 index 00000000000..1b10313117f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/test.desc new file mode 100644 index 00000000000..04100b1da57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_ALL/test.desc new file mode 100644 index 00000000000..a57eea02842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_TSO_ALL/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_ALL/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_ALL/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPC/test.desc new file mode 100644 index 00000000000..8c891ca82d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPC/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPC/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPC/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc new file mode 100644 index 00000000000..716618d168e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/thin000.c b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/thin000.c new file mode 100644 index 00000000000..3c2deaeb8b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/thin000.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = y; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..17d7240679f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin001.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_ALL/test.desc new file mode 100644 index 00000000000..55ed50caba8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_POWER_ALL/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_ALL/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_ALL/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPC/test.desc new file mode 100644 index 00000000000..1da247b8263 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPC/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPC/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPC/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_ALL/test.desc new file mode 100644 index 00000000000..854a4e43be6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_PSO_ALL/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_ALL/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_ALL/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPC/test.desc new file mode 100644 index 00000000000..de9f61e16a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPC/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPC/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPC/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc new file mode 100644 index 00000000000..bc432cb9ea2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_ALL/test.desc new file mode 100644 index 00000000000..59bf9c12f1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_RMO_ALL/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_ALL/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_ALL/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPC/test.desc new file mode 100644 index 00000000000..da0fbe56ec0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPC/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPC/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPC/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc new file mode 100644 index 00000000000..508155c46aa --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/test.desc new file mode 100644 index 00000000000..ddb40c90b02 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_ALL/test.desc new file mode 100644 index 00000000000..06983a36df4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_TSO_ALL/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_ALL/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_ALL/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPC/test.desc new file mode 100644 index 00000000000..e50c1980dad --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPC/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPC/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPC/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc new file mode 100644 index 00000000000..868bd4d1bc1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/thin001.c b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/thin001.c new file mode 100644 index 00000000000..22eb8177bee --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/thin001.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..0fc914276a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin002.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_ALL/test.desc new file mode 100644 index 00000000000..9d17dc3e46d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_POWER_ALL/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_ALL/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_ALL/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPC/test.desc new file mode 100644 index 00000000000..517f596edd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPC/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPC/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPC/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc new file mode 100644 index 00000000000..9c5903d7037 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_ALL/test.desc new file mode 100644 index 00000000000..27f258f5969 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_PSO_ALL/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_ALL/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_ALL/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPC/test.desc new file mode 100644 index 00000000000..04badb1ee04 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPC/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPC/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPC/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc new file mode 100644 index 00000000000..afb32b7ff12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_ALL/test.desc new file mode 100644 index 00000000000..02b1f7736e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_RMO_ALL/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_ALL/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_ALL/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPC/test.desc new file mode 100644 index 00000000000..d346da56f73 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPC/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPC/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPC/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc new file mode 100644 index 00000000000..6de8d7b7d44 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/test.desc new file mode 100644 index 00000000000..75ac393cf73 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_ALL/test.desc new file mode 100644 index 00000000000..196f0aa1461 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_TSO_ALL/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_ALL/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_ALL/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPC/test.desc new file mode 100644 index 00000000000..cbd15fab380 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPC/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPC/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPC/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc new file mode 100644 index 00000000000..12b9d85e1e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/thin002.c b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/thin002.c new file mode 100644 index 00000000000..1e449c24353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/thin002.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = x; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&y + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = y; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&z + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = z; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&a + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p1_r1 == 1 && + __unbuffered_p2_r1 == 1 && __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..1846a7d19dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin003.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_ALL/test.desc new file mode 100644 index 00000000000..5352cb8cd27 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin003.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_POWER_ALL/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_ALL/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_ALL/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPC/test.desc new file mode 100644 index 00000000000..409c8316c2d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin003.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPC/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPC/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPC/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/test.desc new file mode 100644 index 00000000000..081bdab6035 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin003.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_ALL/test.desc new file mode 100644 index 00000000000..e788243c8eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin003.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_PSO_ALL/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_ALL/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_ALL/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPC/test.desc new file mode 100644 index 00000000000..1aa7b32001c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin003.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPC/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPC/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPC/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc new file mode 100644 index 00000000000..5759188a50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin003.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_ALL/test.desc new file mode 100644 index 00000000000..46c3aa502b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin003.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_RMO_ALL/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_ALL/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_ALL/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPC/test.desc new file mode 100644 index 00000000000..cda4d9b9dd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin003.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPC/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPC/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPC/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/test.desc new file mode 100644 index 00000000000..bf233373b28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin003.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/test.desc new file mode 100644 index 00000000000..c95e9c18804 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_ALL/test.desc new file mode 100644 index 00000000000..2be8d1052e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin003.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_TSO_ALL/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_ALL/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_ALL/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPC/test.desc new file mode 100644 index 00000000000..01756ea41d8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin003.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPC/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPC/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPC/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc new file mode 100644 index 00000000000..99ecc0e2b71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin003.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/thin003.c b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/thin003.c new file mode 100644 index 00000000000..3c921b19608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/thin003.c @@ -0,0 +1,104 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int __unbuffered_p3_r1 = 0; +int __unbuffered_p3_r3 = 0; +int __unbuffered_p3_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_r1 = a; + __unbuffered_p3_r3 = __unbuffered_p3_r1 ^ __unbuffered_p3_r1; + __unbuffered_p3_r4 = 1; + *(&b + __unbuffered_p3_r3) = __unbuffered_p3_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1 && + __unbuffered_p3_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..e5d00def167 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin004.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_ALL/test.desc new file mode 100644 index 00000000000..5caed5f7b6b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin004.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_POWER_ALL/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_ALL/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_ALL/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPC/test.desc new file mode 100644 index 00000000000..57adf21b419 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin004.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPC/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPC/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPC/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/test.desc new file mode 100644 index 00000000000..2e936487c1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin004.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_ALL/test.desc new file mode 100644 index 00000000000..544f442da0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin004.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_PSO_ALL/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_ALL/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_ALL/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPC/test.desc new file mode 100644 index 00000000000..27e570d590e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin004.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPC/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPC/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPC/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc new file mode 100644 index 00000000000..d7c918d85d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin004.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_ALL/test.desc new file mode 100644 index 00000000000..ea7aec15594 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin004.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_RMO_ALL/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_ALL/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_ALL/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPC/test.desc new file mode 100644 index 00000000000..47b0c61dc62 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin004.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPC/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPC/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPC/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/test.desc new file mode 100644 index 00000000000..6ad48f587d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin004.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/test.desc new file mode 100644 index 00000000000..7068a5076f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin004.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_ALL/test.desc new file mode 100644 index 00000000000..16487b68b55 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin004.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_TSO_ALL/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_ALL/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_ALL/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPC/test.desc new file mode 100644 index 00000000000..1a714249808 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin004.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPC/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPC/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPC/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc new file mode 100644 index 00000000000..459165db040 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin004.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/thin004.c b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/thin004.c new file mode 100644 index 00000000000..637fb2acbb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/thin004.c @@ -0,0 +1,86 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = z; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&a + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..0b66c859a1e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin005.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_ALL/test.desc new file mode 100644 index 00000000000..bfafec05fc3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin005.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_POWER_ALL/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_ALL/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_ALL/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPC/test.desc new file mode 100644 index 00000000000..eb9e0c0a929 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin005.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPC/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPC/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPC/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/test.desc new file mode 100644 index 00000000000..848c1eb00c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin005.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_ALL/test.desc new file mode 100644 index 00000000000..497232d6b2c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin005.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_PSO_ALL/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_ALL/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_ALL/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPC/test.desc new file mode 100644 index 00000000000..259167db827 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin005.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPC/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPC/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPC/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc new file mode 100644 index 00000000000..0f3bf30699e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin005.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_ALL/test.desc new file mode 100644 index 00000000000..b303e0d960f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin005.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_RMO_ALL/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_ALL/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_ALL/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPC/test.desc new file mode 100644 index 00000000000..bfac391085a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin005.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPC/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPC/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPC/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/test.desc new file mode 100644 index 00000000000..fd615a658a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin005.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/test.desc new file mode 100644 index 00000000000..0625d2c6419 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin005.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_ALL/test.desc new file mode 100644 index 00000000000..70b49a56383 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin005.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_TSO_ALL/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_ALL/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_ALL/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPC/test.desc new file mode 100644 index 00000000000..05c290755f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin005.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPC/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPC/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPC/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc new file mode 100644 index 00000000000..d7dc1e4e1f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin005.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/thin005.c b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/thin005.c new file mode 100644 index 00000000000..144fce65ac0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/thin005.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = z; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..071f3e20dad --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin006.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_ALL/test.desc new file mode 100644 index 00000000000..a2a337935c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin006.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_POWER_ALL/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_ALL/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_ALL/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPC/test.desc new file mode 100644 index 00000000000..ee11c168c44 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin006.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPC/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPC/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPC/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/test.desc new file mode 100644 index 00000000000..1ea0a98b4e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin006.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_ALL/test.desc new file mode 100644 index 00000000000..5362281570e --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin006.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_PSO_ALL/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_ALL/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_ALL/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPC/test.desc new file mode 100644 index 00000000000..a98626a650d --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin006.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPC/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPC/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPC/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc new file mode 100644 index 00000000000..bba897dc201 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin006.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_ALL/test.desc new file mode 100644 index 00000000000..3d49f3cc409 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin006.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_RMO_ALL/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_ALL/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_ALL/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPC/test.desc new file mode 100644 index 00000000000..2dc6ce767f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin006.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPC/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPC/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPC/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/test.desc new file mode 100644 index 00000000000..05e399aef18 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin006.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/test.desc new file mode 100644 index 00000000000..aaafb6edf09 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin006.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_ALL/test.desc new file mode 100644 index 00000000000..98a0e26c864 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin006.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_TSO_ALL/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_ALL/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_ALL/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPC/test.desc new file mode 100644 index 00000000000..9100c8b91a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin006.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPC/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPC/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPC/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc new file mode 100644 index 00000000000..b90162f1866 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin006.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/thin006.c b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/thin006.c new file mode 100644 index 00000000000..d6fc78bee30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/thin006.c @@ -0,0 +1,95 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int __unbuffered_p2_r1 = 0; +int __unbuffered_p2_r3 = 0; +int __unbuffered_p2_r4 = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = b; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_r1 = a; + __unbuffered_p2_r3 = __unbuffered_p2_r1 ^ __unbuffered_p2_r1; + __unbuffered_p2_r4 = 1; + *(&b + __unbuffered_p2_r3) = __unbuffered_p2_r4; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1 && + __unbuffered_p2_r1 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..96588f4ecaf --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin007.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_ALL/test.desc new file mode 100644 index 00000000000..eecafb15d6f --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin007.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_POWER_ALL/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_ALL/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_ALL/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPC/test.desc new file mode 100644 index 00000000000..11c7327ea0a --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin007.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPC/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPC/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPC/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/test.desc new file mode 100644 index 00000000000..b8f11ab4f8c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin007.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_ALL/test.desc new file mode 100644 index 00000000000..bdfa25be9fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin007.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_PSO_ALL/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_ALL/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_ALL/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPC/test.desc new file mode 100644 index 00000000000..0a192954e68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin007.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPC/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPC/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPC/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc new file mode 100644 index 00000000000..ef231418229 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin007.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_ALL/test.desc new file mode 100644 index 00000000000..02ef0033668 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin007.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_RMO_ALL/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_ALL/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_ALL/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPC/test.desc new file mode 100644 index 00000000000..02083366cf7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin007.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPC/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPC/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPC/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/test.desc new file mode 100644 index 00000000000..c5b6978c899 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin007.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/test.desc new file mode 100644 index 00000000000..3c810f68290 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin007.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_ALL/test.desc new file mode 100644 index 00000000000..d0659917b14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin007.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_TSO_ALL/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_ALL/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_ALL/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPC/test.desc new file mode 100644 index 00000000000..dde4c8408cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin007.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPC/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPC/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPC/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc new file mode 100644 index 00000000000..1ad31f3e78c --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin007.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/thin007.c b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/thin007.c new file mode 100644 index 00000000000..30a19ffc944 --- /dev/null +++ b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/thin007.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_r1 = 0; +int __unbuffered_p0_r3 = 0; +int __unbuffered_p0_r4 = 0; +int __unbuffered_p0_r6 = 0; +int __unbuffered_p0_r7 = 0; +int __unbuffered_p0_r8 = 0; +int __unbuffered_p1_r1 = 0; +int __unbuffered_p1_r3 = 0; +int __unbuffered_p1_r4 = 0; +int __unbuffered_p1_r6 = 0; +int __unbuffered_p1_r7 = 0; +int __unbuffered_p1_r8 = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_r1 = a; + __unbuffered_p0_r3 = __unbuffered_p0_r1 ^ __unbuffered_p0_r1; + __unbuffered_p0_r4 = 1; + *(&x + __unbuffered_p0_r3) = __unbuffered_p0_r4; + __unbuffered_p0_r6 = x; + __unbuffered_p0_r7 = __unbuffered_p0_r6 ^ __unbuffered_p0_r6; + __unbuffered_p0_r8 = 1; + *(&y + __unbuffered_p0_r7) = __unbuffered_p0_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_r1 = y; + __unbuffered_p1_r3 = __unbuffered_p1_r1 ^ __unbuffered_p1_r1; + __unbuffered_p1_r4 = 1; + *(&z + __unbuffered_p1_r3) = __unbuffered_p1_r4; + __unbuffered_p1_r6 = z; + __unbuffered_p1_r7 = __unbuffered_p1_r6 ^ __unbuffered_p1_r6; + __unbuffered_p1_r8 = 1; + *(&a + __unbuffered_p1_r7) = __unbuffered_p1_r8; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_r1 == 1 && __unbuffered_p0_r6 == 1 && + __unbuffered_p1_r1 == 1 && __unbuffered_p1_r6 == 1), + "Program was expected to be safe for PPC, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..321fa1812a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_POWER_ALL/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_POWER_ALL/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_POWER_ALL/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_POWER_ALL/test.desc new file mode 100644 index 00000000000..96c5d2cbfde --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPC/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPC/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPC/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPC/test.desc new file mode 100644 index 00000000000..b7f9456c5a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc new file mode 100644 index 00000000000..56abb4e3632 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_PSO_ALL/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_PSO_ALL/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_PSO_ALL/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_PSO_ALL/test.desc new file mode 100644 index 00000000000..51e443970d6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPC/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPC/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPC/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPC/test.desc new file mode 100644 index 00000000000..4b6b70971c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc new file mode 100644 index 00000000000..133f637b340 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_RMO_ALL/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_RMO_ALL/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_RMO_ALL/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_RMO_ALL/test.desc new file mode 100644 index 00000000000..0e9afb1d812 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPC/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPC/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPC/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPC/test.desc new file mode 100644 index 00000000000..86b7c718960 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc new file mode 100644 index 00000000000..1c02752ba49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/test.desc new file mode 100644 index 00000000000..df0b17d49b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_TSO_ALL/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_TSO_ALL/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_TSO_ALL/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_TSO_ALL/test.desc new file mode 100644 index 00000000000..bd964cf1794 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPC/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPC/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPC/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPC/test.desc new file mode 100644 index 00000000000..6b44e943465 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/mix000.c b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/mix000.c new file mode 100644 index 00000000000..418763d679d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/mix000.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc new file mode 100644 index 00000000000..585c130e582 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix000.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..423f712e1df --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_POWER_ALL/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_POWER_ALL/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_POWER_ALL/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_POWER_ALL/test.desc new file mode 100644 index 00000000000..86fdec87a4a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPC/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPC/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPC/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPC/test.desc new file mode 100644 index 00000000000..da1d9ae4c61 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc new file mode 100644 index 00000000000..53f54a1db78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_PSO_ALL/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_PSO_ALL/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_PSO_ALL/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_PSO_ALL/test.desc new file mode 100644 index 00000000000..18a0c005f07 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPC/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPC/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPC/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPC/test.desc new file mode 100644 index 00000000000..8e136ae8b5d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc new file mode 100644 index 00000000000..8cd6363eb2c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_RMO_ALL/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_RMO_ALL/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_RMO_ALL/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_RMO_ALL/test.desc new file mode 100644 index 00000000000..158d834b531 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPC/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPC/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPC/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPC/test.desc new file mode 100644 index 00000000000..92ea6d61bf0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc new file mode 100644 index 00000000000..ab0a6f49102 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/test.desc new file mode 100644 index 00000000000..2a6235dc105 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_TSO_ALL/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_TSO_ALL/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_TSO_ALL/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_TSO_ALL/test.desc new file mode 100644 index 00000000000..e5c787b6643 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPC/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPC/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPC/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPC/test.desc new file mode 100644 index 00000000000..18919bcc236 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/mix001.c b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/mix001.c new file mode 100644 index 00000000000..cc403037a03 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/mix001.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc new file mode 100644 index 00000000000..8a7d51be179 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix001.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..ee9d8d44af0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix002.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_POWER_ALL/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_POWER_ALL/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_POWER_ALL/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_POWER_ALL/test.desc new file mode 100644 index 00000000000..4ec7563621a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPC/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPC/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPC/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPC/test.desc new file mode 100644 index 00000000000..f92e780bd67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc new file mode 100644 index 00000000000..c4986def22c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix002.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_PSO_ALL/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_PSO_ALL/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_PSO_ALL/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_PSO_ALL/test.desc new file mode 100644 index 00000000000..358065668d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix002.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPC/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPC/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPC/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPC/test.desc new file mode 100644 index 00000000000..8fbc63fd0ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix002.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc new file mode 100644 index 00000000000..218bb3b5c70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix002.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_RMO_ALL/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_RMO_ALL/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_RMO_ALL/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_RMO_ALL/test.desc new file mode 100644 index 00000000000..11ba9d06961 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix002.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPC/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPC/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPC/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPC/test.desc new file mode 100644 index 00000000000..6647aee21b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix002.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc new file mode 100644 index 00000000000..963aa25bf58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix002.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/test.desc new file mode 100644 index 00000000000..c49094ea385 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_TSO_ALL/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_TSO_ALL/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_TSO_ALL/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_TSO_ALL/test.desc new file mode 100644 index 00000000000..7eefac206d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix002.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPC/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPC/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPC/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPC/test.desc new file mode 100644 index 00000000000..0fd47e5d74e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix002.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/mix002.c b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/mix002.c new file mode 100644 index 00000000000..a1767d18fe6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/mix002.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc new file mode 100644 index 00000000000..93a1dbbd705 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix002.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..2792e6db8b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix003.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_POWER_ALL/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_POWER_ALL/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_POWER_ALL/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_POWER_ALL/test.desc new file mode 100644 index 00000000000..37e0cf5cae7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPC/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPC/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPC/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPC/test.desc new file mode 100644 index 00000000000..c6a4c448e70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc new file mode 100644 index 00000000000..3e3263da25b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_PSO_ALL/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_PSO_ALL/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_PSO_ALL/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_PSO_ALL/test.desc new file mode 100644 index 00000000000..50ba86c30d8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPC/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPC/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPC/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPC/test.desc new file mode 100644 index 00000000000..06cefa99ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc new file mode 100644 index 00000000000..b94d5f01f35 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_RMO_ALL/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_RMO_ALL/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_RMO_ALL/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_RMO_ALL/test.desc new file mode 100644 index 00000000000..0f1d1a223ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPC/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPC/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPC/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPC/test.desc new file mode 100644 index 00000000000..c85bcc0e47f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc new file mode 100644 index 00000000000..5a84ca67dcf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/test.desc new file mode 100644 index 00000000000..93827ed6f61 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_TSO_ALL/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_TSO_ALL/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_TSO_ALL/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_TSO_ALL/test.desc new file mode 100644 index 00000000000..111b02da872 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPC/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPC/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPC/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPC/test.desc new file mode 100644 index 00000000000..cc907046932 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/mix003.c b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/mix003.c new file mode 100644 index 00000000000..e791dbde50c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/mix003.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc new file mode 100644 index 00000000000..d81b21b0d19 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix003.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1b144d56847 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix004.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_POWER_ALL/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_POWER_ALL/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_POWER_ALL/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_POWER_ALL/test.desc new file mode 100644 index 00000000000..8ddec442e0a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix004.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPC/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPC/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPC/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPC/test.desc new file mode 100644 index 00000000000..4ddfe122c4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix004.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_PSO_ALL/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_PSO_ALL/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_PSO_ALL/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_PSO_ALL/test.desc new file mode 100644 index 00000000000..a07df40e00f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix004.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPC/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPC/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPC/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPC/test.desc new file mode 100644 index 00000000000..01e6f8400bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix004.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc new file mode 100644 index 00000000000..09ede7f03b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix004.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_RMO_ALL/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_RMO_ALL/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_RMO_ALL/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_RMO_ALL/test.desc new file mode 100644 index 00000000000..738b5120cb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix004.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPC/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPC/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPC/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPC/test.desc new file mode 100644 index 00000000000..750ae08c6f9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix004.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc new file mode 100644 index 00000000000..dda428a586b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix004.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/test.desc new file mode 100644 index 00000000000..42057df14af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix004.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_TSO_ALL/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_TSO_ALL/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_TSO_ALL/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_TSO_ALL/test.desc new file mode 100644 index 00000000000..43b238fb12f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix004.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPC/mix004.c b/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPC/mix004.c new file mode 100644 index 00000000000..dfe58f001fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPC/mix004.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPC/test.desc new file mode 100644 index 00000000000..a6866256b97 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix004.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..2471487d26c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix005.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_POWER_ALL/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_POWER_ALL/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_POWER_ALL/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_POWER_ALL/test.desc new file mode 100644 index 00000000000..2b08c16958b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix005.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPC/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPC/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPC/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPC/test.desc new file mode 100644 index 00000000000..52e1411ef80 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix005.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_PSO_ALL/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_PSO_ALL/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_PSO_ALL/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_PSO_ALL/test.desc new file mode 100644 index 00000000000..e93bf044496 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix005.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPC/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPC/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPC/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPC/test.desc new file mode 100644 index 00000000000..d31488a2aec --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix005.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc new file mode 100644 index 00000000000..664b66deeb8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix005.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_RMO_ALL/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_RMO_ALL/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_RMO_ALL/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_RMO_ALL/test.desc new file mode 100644 index 00000000000..9fac86f0fd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix005.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPC/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPC/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPC/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPC/test.desc new file mode 100644 index 00000000000..0fe2ebad36e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix005.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc new file mode 100644 index 00000000000..606d9ea51ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix005.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/test.desc new file mode 100644 index 00000000000..4acdae0ead5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix005.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_TSO_ALL/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_TSO_ALL/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_TSO_ALL/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_TSO_ALL/test.desc new file mode 100644 index 00000000000..5c28fd8fe21 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix005.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPC/mix005.c b/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPC/mix005.c new file mode 100644 index 00000000000..f81eb262192 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPC/mix005.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPC/test.desc new file mode 100644 index 00000000000..726962d067e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix005.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..719e60ca8d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix006.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_POWER_ALL/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_POWER_ALL/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_POWER_ALL/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_POWER_ALL/test.desc new file mode 100644 index 00000000000..09429a5c048 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix006.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPC/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPC/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPC/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPC/test.desc new file mode 100644 index 00000000000..d4a0dfe6a5e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix006.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc new file mode 100644 index 00000000000..ec31e2745ce --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix006.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_PSO_ALL/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_PSO_ALL/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_PSO_ALL/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_PSO_ALL/test.desc new file mode 100644 index 00000000000..cd79c81a4fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix006.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPC/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPC/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPC/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPC/test.desc new file mode 100644 index 00000000000..6b2ab337f79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix006.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc new file mode 100644 index 00000000000..724188e2b84 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix006.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_RMO_ALL/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_RMO_ALL/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_RMO_ALL/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_RMO_ALL/test.desc new file mode 100644 index 00000000000..0536b526423 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix006.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPC/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPC/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPC/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPC/test.desc new file mode 100644 index 00000000000..fd774a4971e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix006.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc new file mode 100644 index 00000000000..647ad567ca4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix006.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/test.desc new file mode 100644 index 00000000000..0e298576a69 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix006.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_TSO_ALL/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_TSO_ALL/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_TSO_ALL/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_TSO_ALL/test.desc new file mode 100644 index 00000000000..53cb854c928 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix006.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPC/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPC/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPC/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPC/test.desc new file mode 100644 index 00000000000..cf0f26a85b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix006.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/mix006.c b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/mix006.c new file mode 100644 index 00000000000..e7b9adaed3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/mix006.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc new file mode 100644 index 00000000000..68e59f36760 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix006.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..f7c7ec3bd7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix007.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_POWER_ALL/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_POWER_ALL/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_POWER_ALL/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_POWER_ALL/test.desc new file mode 100644 index 00000000000..e16d6ceb573 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix007.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPC/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPC/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPC/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPC/test.desc new file mode 100644 index 00000000000..b436ef4e330 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix007.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_PSO_ALL/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_PSO_ALL/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_PSO_ALL/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_PSO_ALL/test.desc new file mode 100644 index 00000000000..579f0bd8753 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix007.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPC/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPC/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPC/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPC/test.desc new file mode 100644 index 00000000000..140c2f13a74 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix007.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc new file mode 100644 index 00000000000..61330a83d7e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix007.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_RMO_ALL/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_RMO_ALL/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_RMO_ALL/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_RMO_ALL/test.desc new file mode 100644 index 00000000000..1dc4689a54f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix007.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPC/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPC/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPC/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPC/test.desc new file mode 100644 index 00000000000..6dfbbd7e7d5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix007.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc new file mode 100644 index 00000000000..458042268cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix007.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/test.desc new file mode 100644 index 00000000000..b24f0431e34 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix007.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_TSO_ALL/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_TSO_ALL/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_TSO_ALL/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_TSO_ALL/test.desc new file mode 100644 index 00000000000..cbf17154b6c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix007.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPC/mix007.c b/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPC/mix007.c new file mode 100644 index 00000000000..8fa31e0be4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPC/mix007.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPC/test.desc new file mode 100644 index 00000000000..6fa30bafcb8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix007.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..bdf3995fdb2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix008.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_POWER_ALL/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_POWER_ALL/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_POWER_ALL/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_POWER_ALL/test.desc new file mode 100644 index 00000000000..1ac258a90a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix008.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPC/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPC/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPC/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPC/test.desc new file mode 100644 index 00000000000..858f87ae19f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix008.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_PSO_ALL/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_PSO_ALL/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_PSO_ALL/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_PSO_ALL/test.desc new file mode 100644 index 00000000000..56910972bab --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix008.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPC/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPC/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPC/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPC/test.desc new file mode 100644 index 00000000000..dc23a5af274 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix008.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc new file mode 100644 index 00000000000..165d73d5a77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix008.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_RMO_ALL/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_RMO_ALL/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_RMO_ALL/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_RMO_ALL/test.desc new file mode 100644 index 00000000000..cb8d961655e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix008.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPC/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPC/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPC/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPC/test.desc new file mode 100644 index 00000000000..6c09e83eae4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix008.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc new file mode 100644 index 00000000000..c768d30bedb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix008.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/test.desc new file mode 100644 index 00000000000..2a5f3a3d8ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix008.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_TSO_ALL/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_TSO_ALL/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_TSO_ALL/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_TSO_ALL/test.desc new file mode 100644 index 00000000000..7b209ad0f36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix008.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPC/mix008.c b/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPC/mix008.c new file mode 100644 index 00000000000..0ffa48ea314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPC/mix008.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPC/test.desc new file mode 100644 index 00000000000..a671a16310e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix008.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..67b8fa74b9e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix009.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_POWER_ALL/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_POWER_ALL/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_POWER_ALL/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_POWER_ALL/test.desc new file mode 100644 index 00000000000..8101bec8082 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPC/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPC/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPC/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPC/test.desc new file mode 100644 index 00000000000..db40348a733 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc new file mode 100644 index 00000000000..c324609cb1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_PSO_ALL/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_PSO_ALL/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_PSO_ALL/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_PSO_ALL/test.desc new file mode 100644 index 00000000000..1583f8d6ae7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPC/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPC/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPC/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPC/test.desc new file mode 100644 index 00000000000..e015af961da --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc new file mode 100644 index 00000000000..2e04c602db3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_RMO_ALL/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_RMO_ALL/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_RMO_ALL/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_RMO_ALL/test.desc new file mode 100644 index 00000000000..13de835ede0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPC/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPC/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPC/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPC/test.desc new file mode 100644 index 00000000000..0e7b800dff2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc new file mode 100644 index 00000000000..c1839be20ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/test.desc new file mode 100644 index 00000000000..b656bce5d8b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix009.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_TSO_ALL/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_TSO_ALL/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_TSO_ALL/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_TSO_ALL/test.desc new file mode 100644 index 00000000000..ee2b0fc935d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPC/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPC/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPC/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPC/test.desc new file mode 100644 index 00000000000..3a2bb8dcb64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/mix009.c b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/mix009.c new file mode 100644 index 00000000000..b56c92287d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/mix009.c @@ -0,0 +1,58 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc new file mode 100644 index 00000000000..5bc48cfec6b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix009.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..d8667efb79c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix010.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_POWER_ALL/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_POWER_ALL/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_POWER_ALL/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_POWER_ALL/test.desc new file mode 100644 index 00000000000..0e62f38ce55 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPC/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPC/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPC/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPC/test.desc new file mode 100644 index 00000000000..a10f8ccc4c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc new file mode 100644 index 00000000000..61ad184f28b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_PSO_ALL/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_PSO_ALL/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_PSO_ALL/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_PSO_ALL/test.desc new file mode 100644 index 00000000000..c3036991aab --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPC/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPC/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPC/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPC/test.desc new file mode 100644 index 00000000000..95f2d8304fe --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc new file mode 100644 index 00000000000..d86f6433e4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_RMO_ALL/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_RMO_ALL/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_RMO_ALL/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_RMO_ALL/test.desc new file mode 100644 index 00000000000..dc5f9c21616 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPC/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPC/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPC/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPC/test.desc new file mode 100644 index 00000000000..6ae924da268 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc new file mode 100644 index 00000000000..1a26252df93 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/test.desc new file mode 100644 index 00000000000..8f3d12d098a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix010.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_TSO_ALL/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_TSO_ALL/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_TSO_ALL/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_TSO_ALL/test.desc new file mode 100644 index 00000000000..4112b961577 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPC/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPC/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPC/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPC/test.desc new file mode 100644 index 00000000000..eb33edd9c9c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/mix010.c b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/mix010.c new file mode 100644 index 00000000000..f05aefa8c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/mix010.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc new file mode 100644 index 00000000000..749666f77f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix010.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..41cb5dff72e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix011.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_POWER_ALL/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_POWER_ALL/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_POWER_ALL/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_POWER_ALL/test.desc new file mode 100644 index 00000000000..b11dea60d6d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPC/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPC/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPC/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPC/test.desc new file mode 100644 index 00000000000..c51f4e87379 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc new file mode 100644 index 00000000000..8932d52b586 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_PSO_ALL/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_PSO_ALL/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_PSO_ALL/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_PSO_ALL/test.desc new file mode 100644 index 00000000000..c5d02c9d222 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPC/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPC/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPC/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPC/test.desc new file mode 100644 index 00000000000..bb76eaad3d7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc new file mode 100644 index 00000000000..f9e21ae3f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_RMO_ALL/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_RMO_ALL/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_RMO_ALL/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_RMO_ALL/test.desc new file mode 100644 index 00000000000..f5d40e8da56 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPC/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPC/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPC/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPC/test.desc new file mode 100644 index 00000000000..eb410a4b6af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc new file mode 100644 index 00000000000..28c986d0e8d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/test.desc new file mode 100644 index 00000000000..2a6953226f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix011.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_TSO_ALL/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_TSO_ALL/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_TSO_ALL/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_TSO_ALL/test.desc new file mode 100644 index 00000000000..0f39f577b8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPC/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPC/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPC/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPC/test.desc new file mode 100644 index 00000000000..effd1609683 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/mix011.c b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/mix011.c new file mode 100644 index 00000000000..ddec63275be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/mix011.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc new file mode 100644 index 00000000000..8230b78be36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix011.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e9cc337f34e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix012.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_POWER_ALL/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_POWER_ALL/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_POWER_ALL/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_POWER_ALL/test.desc new file mode 100644 index 00000000000..06f9c307481 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPC/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPC/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPC/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPC/test.desc new file mode 100644 index 00000000000..cd0d676fa26 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc new file mode 100644 index 00000000000..b395efc97bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_PSO_ALL/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_PSO_ALL/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_PSO_ALL/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_PSO_ALL/test.desc new file mode 100644 index 00000000000..c8120e55b47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPC/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPC/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPC/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPC/test.desc new file mode 100644 index 00000000000..3b49bef3466 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc new file mode 100644 index 00000000000..3b8567ca666 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_RMO_ALL/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_RMO_ALL/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_RMO_ALL/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_RMO_ALL/test.desc new file mode 100644 index 00000000000..203aaf7225a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPC/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPC/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPC/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPC/test.desc new file mode 100644 index 00000000000..c5a189459c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc new file mode 100644 index 00000000000..16a9b8666b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/test.desc new file mode 100644 index 00000000000..ff4bddafb98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix012.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_TSO_ALL/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_TSO_ALL/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_TSO_ALL/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_TSO_ALL/test.desc new file mode 100644 index 00000000000..d0d196924fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPC/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPC/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPC/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPC/test.desc new file mode 100644 index 00000000000..72845018e5f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/mix012.c b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/mix012.c new file mode 100644 index 00000000000..3b98c298d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/mix012.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc new file mode 100644 index 00000000000..61282daf61d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix012.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..9e38a397124 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix013.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_POWER_ALL/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_POWER_ALL/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_POWER_ALL/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_POWER_ALL/test.desc new file mode 100644 index 00000000000..4611e43714e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix013.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPC/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPC/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPC/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPC/test.desc new file mode 100644 index 00000000000..4bbda60f963 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix013.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_PSO_ALL/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_PSO_ALL/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_PSO_ALL/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_PSO_ALL/test.desc new file mode 100644 index 00000000000..7c8f231f719 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix013.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPC/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPC/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPC/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPC/test.desc new file mode 100644 index 00000000000..25ae7a22aaa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix013.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc new file mode 100644 index 00000000000..e74f3685200 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix013.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_RMO_ALL/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_RMO_ALL/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_RMO_ALL/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_RMO_ALL/test.desc new file mode 100644 index 00000000000..01108467901 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix013.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPC/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPC/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPC/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPC/test.desc new file mode 100644 index 00000000000..24ba74558bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix013.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc new file mode 100644 index 00000000000..cd7dfab4be2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix013.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/test.desc new file mode 100644 index 00000000000..27cfd0926e6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix013.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_TSO_ALL/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_TSO_ALL/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_TSO_ALL/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_TSO_ALL/test.desc new file mode 100644 index 00000000000..0055f04bc79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix013.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPC/mix013.c b/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPC/mix013.c new file mode 100644 index 00000000000..3d5e6c60eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPC/mix013.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPC/test.desc new file mode 100644 index 00000000000..61c3498d4b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix013.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..ae2279711c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix014.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_POWER_ALL/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_POWER_ALL/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_POWER_ALL/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_POWER_ALL/test.desc new file mode 100644 index 00000000000..799b45b850c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix014.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPC/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPC/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPC/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPC/test.desc new file mode 100644 index 00000000000..b929a03d8aa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix014.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_PSO_ALL/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_PSO_ALL/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_PSO_ALL/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_PSO_ALL/test.desc new file mode 100644 index 00000000000..b6e9f38ed51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix014.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPC/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPC/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPC/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPC/test.desc new file mode 100644 index 00000000000..cdee38a31bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix014.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc new file mode 100644 index 00000000000..5872b3c4f1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix014.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_RMO_ALL/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_RMO_ALL/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_RMO_ALL/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_RMO_ALL/test.desc new file mode 100644 index 00000000000..b664fd79f98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix014.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPC/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPC/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPC/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPC/test.desc new file mode 100644 index 00000000000..d1c95a5baef --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix014.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc new file mode 100644 index 00000000000..706cde3d732 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix014.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/test.desc new file mode 100644 index 00000000000..9093819286d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix014.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_TSO_ALL/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_TSO_ALL/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_TSO_ALL/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_TSO_ALL/test.desc new file mode 100644 index 00000000000..3b0462b414a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix014.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPC/mix014.c b/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPC/mix014.c new file mode 100644 index 00000000000..dc7a6a63351 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPC/mix014.c @@ -0,0 +1,82 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPC/test.desc new file mode 100644 index 00000000000..6d9985adf3e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix014.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..46752d0e7f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix015.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_POWER_ALL/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_POWER_ALL/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_POWER_ALL/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_POWER_ALL/test.desc new file mode 100644 index 00000000000..27c7eb08e67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPC/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPC/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPC/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPC/test.desc new file mode 100644 index 00000000000..8b56de574d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc new file mode 100644 index 00000000000..cc953f1a65f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_PSO_ALL/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_PSO_ALL/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_PSO_ALL/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_PSO_ALL/test.desc new file mode 100644 index 00000000000..a6fcad11b29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPC/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPC/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPC/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPC/test.desc new file mode 100644 index 00000000000..45d1f110f0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc new file mode 100644 index 00000000000..db422faf4a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_RMO_ALL/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_RMO_ALL/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_RMO_ALL/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_RMO_ALL/test.desc new file mode 100644 index 00000000000..006407a61f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPC/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPC/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPC/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPC/test.desc new file mode 100644 index 00000000000..631eccb7d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc new file mode 100644 index 00000000000..0eb0b505427 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/test.desc new file mode 100644 index 00000000000..2a5cbbef560 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix015.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_TSO_ALL/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_TSO_ALL/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_TSO_ALL/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_TSO_ALL/test.desc new file mode 100644 index 00000000000..0ec930dafa8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPC/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPC/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPC/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPC/test.desc new file mode 100644 index 00000000000..904a5af0426 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/mix015.c b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/mix015.c new file mode 100644 index 00000000000..42854a6325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/mix015.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc new file mode 100644 index 00000000000..d20cedc1abe --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix015.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..ea74bb5a701 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix016.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_POWER_ALL/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_POWER_ALL/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_POWER_ALL/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_POWER_ALL/test.desc new file mode 100644 index 00000000000..8f4b9bd9ca1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix016.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPC/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPC/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPC/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPC/test.desc new file mode 100644 index 00000000000..b2243f4d3cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix016.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc new file mode 100644 index 00000000000..cc677cfc2c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix016.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_PSO_ALL/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_PSO_ALL/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_PSO_ALL/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_PSO_ALL/test.desc new file mode 100644 index 00000000000..694cf62248d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix016.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPC/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPC/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPC/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPC/test.desc new file mode 100644 index 00000000000..883f13efdc7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix016.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc new file mode 100644 index 00000000000..f08466d4d6a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix016.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_RMO_ALL/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_RMO_ALL/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_RMO_ALL/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_RMO_ALL/test.desc new file mode 100644 index 00000000000..25423789f3b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix016.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPC/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPC/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPC/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPC/test.desc new file mode 100644 index 00000000000..5ea2ea9e586 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix016.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc new file mode 100644 index 00000000000..6946addb7cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix016.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/test.desc new file mode 100644 index 00000000000..9aae26d2fde --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix016.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_TSO_ALL/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_TSO_ALL/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_TSO_ALL/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_TSO_ALL/test.desc new file mode 100644 index 00000000000..33657d53e5a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix016.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPC/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPC/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPC/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPC/test.desc new file mode 100644 index 00000000000..6dc389d57ac --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix016.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/mix016.c b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/mix016.c new file mode 100644 index 00000000000..2191f7a1607 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/mix016.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc new file mode 100644 index 00000000000..354098c5262 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix016.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..77ff2604770 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix017.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_POWER_ALL/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_POWER_ALL/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_POWER_ALL/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_POWER_ALL/test.desc new file mode 100644 index 00000000000..45b066adadb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix017.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPC/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPC/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPC/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPC/test.desc new file mode 100644 index 00000000000..3853d2621fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix017.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_PSO_ALL/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_PSO_ALL/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_PSO_ALL/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_PSO_ALL/test.desc new file mode 100644 index 00000000000..d5ec5eb5c3d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix017.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPC/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPC/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPC/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPC/test.desc new file mode 100644 index 00000000000..98c3100fd61 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix017.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc new file mode 100644 index 00000000000..1ab2ef5955a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix017.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_RMO_ALL/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_RMO_ALL/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_RMO_ALL/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_RMO_ALL/test.desc new file mode 100644 index 00000000000..4d421d2dafa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix017.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPC/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPC/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPC/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPC/test.desc new file mode 100644 index 00000000000..e85936c08d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix017.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc new file mode 100644 index 00000000000..89bc7a4d6f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix017.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/test.desc new file mode 100644 index 00000000000..3f3246953fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix017.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_TSO_ALL/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_TSO_ALL/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_TSO_ALL/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_TSO_ALL/test.desc new file mode 100644 index 00000000000..0c5f5d35e25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix017.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPC/mix017.c b/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPC/mix017.c new file mode 100644 index 00000000000..58f8ff1c9d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPC/mix017.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPC/test.desc new file mode 100644 index 00000000000..39d94e6ae16 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix017.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..fb353c16154 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix018.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_POWER_ALL/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_POWER_ALL/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_POWER_ALL/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_POWER_ALL/test.desc new file mode 100644 index 00000000000..21d5a93a026 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix018.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPC/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPC/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPC/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPC/test.desc new file mode 100644 index 00000000000..c8ebefc4163 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix018.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_PSO_ALL/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_PSO_ALL/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_PSO_ALL/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_PSO_ALL/test.desc new file mode 100644 index 00000000000..f4bf0498218 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix018.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPC/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPC/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPC/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPC/test.desc new file mode 100644 index 00000000000..f783c8147c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix018.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc new file mode 100644 index 00000000000..9d4504221cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix018.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_RMO_ALL/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_RMO_ALL/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_RMO_ALL/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_RMO_ALL/test.desc new file mode 100644 index 00000000000..e0dcea6352a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix018.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPC/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPC/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPC/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPC/test.desc new file mode 100644 index 00000000000..a95a946e87f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix018.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc new file mode 100644 index 00000000000..0bc45d8e811 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix018.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/test.desc new file mode 100644 index 00000000000..02001a68f5e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix018.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_TSO_ALL/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_TSO_ALL/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_TSO_ALL/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_TSO_ALL/test.desc new file mode 100644 index 00000000000..ee961db3da2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix018.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPC/mix018.c b/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPC/mix018.c new file mode 100644 index 00000000000..010eab01148 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPC/mix018.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPC/test.desc new file mode 100644 index 00000000000..3f0be7a3773 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix018.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..875296c3550 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix019.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_POWER_ALL/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_POWER_ALL/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_POWER_ALL/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_POWER_ALL/test.desc new file mode 100644 index 00000000000..47d21e9e6f4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPC/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPC/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPC/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPC/test.desc new file mode 100644 index 00000000000..d47a17200ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc new file mode 100644 index 00000000000..3a813313410 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_PSO_ALL/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_PSO_ALL/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_PSO_ALL/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_PSO_ALL/test.desc new file mode 100644 index 00000000000..042526b3d1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPC/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPC/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPC/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPC/test.desc new file mode 100644 index 00000000000..26e0e162e31 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc new file mode 100644 index 00000000000..1883e4ee764 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_RMO_ALL/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_RMO_ALL/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_RMO_ALL/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_RMO_ALL/test.desc new file mode 100644 index 00000000000..abfb59746d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPC/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPC/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPC/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPC/test.desc new file mode 100644 index 00000000000..436da721d2f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc new file mode 100644 index 00000000000..bc49152e547 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/test.desc new file mode 100644 index 00000000000..f03e63977e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix019.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_TSO_ALL/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_TSO_ALL/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_TSO_ALL/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_TSO_ALL/test.desc new file mode 100644 index 00000000000..59c8159eaaa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPC/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPC/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPC/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPC/test.desc new file mode 100644 index 00000000000..a0cfb7f5e3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/mix019.c b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/mix019.c new file mode 100644 index 00000000000..4dcd12b50b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/mix019.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc new file mode 100644 index 00000000000..4cb12301d8b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix019.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..83a9f9cc35f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix020.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_POWER_ALL/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_POWER_ALL/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_POWER_ALL/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_POWER_ALL/test.desc new file mode 100644 index 00000000000..b75524a9c28 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix020.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPC/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPC/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPC/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPC/test.desc new file mode 100644 index 00000000000..504470a0e2f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix020.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_PSO_ALL/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_PSO_ALL/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_PSO_ALL/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_PSO_ALL/test.desc new file mode 100644 index 00000000000..06c5244eb19 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix020.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPC/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPC/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPC/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPC/test.desc new file mode 100644 index 00000000000..4c4977fe711 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix020.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc new file mode 100644 index 00000000000..68c08e8ca02 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix020.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_RMO_ALL/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_RMO_ALL/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_RMO_ALL/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_RMO_ALL/test.desc new file mode 100644 index 00000000000..1f66613c287 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix020.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPC/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPC/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPC/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPC/test.desc new file mode 100644 index 00000000000..1168b2c41fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix020.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc new file mode 100644 index 00000000000..ade7a7756e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix020.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/test.desc new file mode 100644 index 00000000000..4dae2e39285 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix020.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_TSO_ALL/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_TSO_ALL/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_TSO_ALL/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_TSO_ALL/test.desc new file mode 100644 index 00000000000..ea2c623ad14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix020.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPC/mix020.c b/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPC/mix020.c new file mode 100644 index 00000000000..c0dbe4a29a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPC/mix020.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPC/test.desc new file mode 100644 index 00000000000..c2980f85cf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix020.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..6520ab65f7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix021.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_POWER_ALL/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_POWER_ALL/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_POWER_ALL/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_POWER_ALL/test.desc new file mode 100644 index 00000000000..2bff51ccae6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix021.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPC/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPC/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPC/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPC/test.desc new file mode 100644 index 00000000000..ba020b0fb85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix021.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_PSO_ALL/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_PSO_ALL/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_PSO_ALL/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_PSO_ALL/test.desc new file mode 100644 index 00000000000..39ee42576d5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix021.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPC/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPC/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPC/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPC/test.desc new file mode 100644 index 00000000000..1a52fb42d56 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix021.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc new file mode 100644 index 00000000000..ddb99f9364a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix021.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_RMO_ALL/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_RMO_ALL/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_RMO_ALL/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_RMO_ALL/test.desc new file mode 100644 index 00000000000..0cc121e5f04 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix021.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPC/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPC/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPC/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPC/test.desc new file mode 100644 index 00000000000..f4425140266 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix021.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc new file mode 100644 index 00000000000..0e61791cc27 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix021.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/test.desc new file mode 100644 index 00000000000..b13b857ec04 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix021.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_TSO_ALL/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_TSO_ALL/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_TSO_ALL/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_TSO_ALL/test.desc new file mode 100644 index 00000000000..f6fcbfddb36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix021.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPC/mix021.c b/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPC/mix021.c new file mode 100644 index 00000000000..7fca3113ac3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPC/mix021.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPC/test.desc new file mode 100644 index 00000000000..27d46b9c293 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix021.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1aa6f26cebc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix022.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_POWER_ALL/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_POWER_ALL/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_POWER_ALL/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_POWER_ALL/test.desc new file mode 100644 index 00000000000..635f267768b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPC/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPC/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPC/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPC/test.desc new file mode 100644 index 00000000000..e52d07c70f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc new file mode 100644 index 00000000000..a3918549467 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_PSO_ALL/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_PSO_ALL/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_PSO_ALL/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_PSO_ALL/test.desc new file mode 100644 index 00000000000..af904293c32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPC/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPC/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPC/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPC/test.desc new file mode 100644 index 00000000000..890fc9110d5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc new file mode 100644 index 00000000000..70bd3689474 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_RMO_ALL/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_RMO_ALL/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_RMO_ALL/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_RMO_ALL/test.desc new file mode 100644 index 00000000000..5cc04f7055d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPC/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPC/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPC/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPC/test.desc new file mode 100644 index 00000000000..f5cbc2582da --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc new file mode 100644 index 00000000000..3cb67f40075 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/test.desc new file mode 100644 index 00000000000..91bbb501ada --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix022.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_TSO_ALL/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_TSO_ALL/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_TSO_ALL/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_TSO_ALL/test.desc new file mode 100644 index 00000000000..957b24de3e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPC/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPC/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPC/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPC/test.desc new file mode 100644 index 00000000000..edae7ed1510 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/mix022.c b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/mix022.c new file mode 100644 index 00000000000..da32aead480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/mix022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc new file mode 100644 index 00000000000..b25d084e64e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix022.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..894914fd6ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix023.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_POWER_ALL/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_POWER_ALL/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_POWER_ALL/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_POWER_ALL/test.desc new file mode 100644 index 00000000000..5ea9607f5ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix023.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPC/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPC/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPC/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPC/test.desc new file mode 100644 index 00000000000..995d82e092d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix023.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_PSO_ALL/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_PSO_ALL/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_PSO_ALL/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_PSO_ALL/test.desc new file mode 100644 index 00000000000..fef3aaf064d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix023.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPC/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPC/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPC/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPC/test.desc new file mode 100644 index 00000000000..e6ad3f1f55a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix023.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc new file mode 100644 index 00000000000..d34195f9ab3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix023.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_RMO_ALL/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_RMO_ALL/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_RMO_ALL/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_RMO_ALL/test.desc new file mode 100644 index 00000000000..fa424ea7582 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix023.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPC/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPC/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPC/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPC/test.desc new file mode 100644 index 00000000000..047e92f8c7d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix023.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc new file mode 100644 index 00000000000..f1737a1e54b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix023.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/test.desc new file mode 100644 index 00000000000..be0a8aa4964 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix023.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_TSO_ALL/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_TSO_ALL/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_TSO_ALL/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_TSO_ALL/test.desc new file mode 100644 index 00000000000..b42699963c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix023.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPC/mix023.c b/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPC/mix023.c new file mode 100644 index 00000000000..4cbc63f07b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPC/mix023.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPC/test.desc new file mode 100644 index 00000000000..af229003bbf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix023.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..75908edc804 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix024.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_POWER_ALL/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_POWER_ALL/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_POWER_ALL/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_POWER_ALL/test.desc new file mode 100644 index 00000000000..31777823281 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix024.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPC/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPC/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPC/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPC/test.desc new file mode 100644 index 00000000000..6cfe45b2d93 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix024.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc new file mode 100644 index 00000000000..a9a608f34f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix024.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_PSO_ALL/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_PSO_ALL/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_PSO_ALL/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_PSO_ALL/test.desc new file mode 100644 index 00000000000..46160833eac --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix024.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPC/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPC/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPC/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPC/test.desc new file mode 100644 index 00000000000..d0eec19fbdb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix024.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc new file mode 100644 index 00000000000..ab81f63d353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix024.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_RMO_ALL/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_RMO_ALL/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_RMO_ALL/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_RMO_ALL/test.desc new file mode 100644 index 00000000000..b7ca0a07ca6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix024.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPC/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPC/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPC/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPC/test.desc new file mode 100644 index 00000000000..5fe179b829c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix024.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc new file mode 100644 index 00000000000..cb8de80571c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix024.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/test.desc new file mode 100644 index 00000000000..d2348b9c304 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix024.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_TSO_ALL/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_TSO_ALL/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_TSO_ALL/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_TSO_ALL/test.desc new file mode 100644 index 00000000000..cd51f8f384d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix024.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPC/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPC/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPC/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPC/test.desc new file mode 100644 index 00000000000..1b778a9eba0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix024.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/mix024.c b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/mix024.c new file mode 100644 index 00000000000..5be6560ee6e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/mix024.c @@ -0,0 +1,70 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 2; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc new file mode 100644 index 00000000000..8e602f223d8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix024.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..8a7a53a3bf4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix025.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_POWER_ALL/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_POWER_ALL/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_POWER_ALL/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_POWER_ALL/test.desc new file mode 100644 index 00000000000..9fc09317aa7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPC/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPC/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPC/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPC/test.desc new file mode 100644 index 00000000000..1404420ca7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc new file mode 100644 index 00000000000..e8a652ffa31 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_PSO_ALL/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_PSO_ALL/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_PSO_ALL/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_PSO_ALL/test.desc new file mode 100644 index 00000000000..ef4aba26d8d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPC/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPC/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPC/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPC/test.desc new file mode 100644 index 00000000000..bfa34677f0a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc new file mode 100644 index 00000000000..cddbfbc90a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_RMO_ALL/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_RMO_ALL/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_RMO_ALL/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_RMO_ALL/test.desc new file mode 100644 index 00000000000..139bc3d5b43 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPC/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPC/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPC/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPC/test.desc new file mode 100644 index 00000000000..2b0938c3ed6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc new file mode 100644 index 00000000000..9d95f5b6958 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/test.desc new file mode 100644 index 00000000000..f2f4d955506 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix025.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_TSO_ALL/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_TSO_ALL/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_TSO_ALL/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_TSO_ALL/test.desc new file mode 100644 index 00000000000..822563d0c2f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPC/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPC/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPC/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPC/test.desc new file mode 100644 index 00000000000..39093517a37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/mix025.c b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/mix025.c new file mode 100644 index 00000000000..05efe500d58 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/mix025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc new file mode 100644 index 00000000000..7660f0bd059 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix025.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e40e6b101d7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix026.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_POWER_ALL/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_POWER_ALL/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_POWER_ALL/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_POWER_ALL/test.desc new file mode 100644 index 00000000000..6c3bd85c428 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix026.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPC/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPC/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPC/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPC/test.desc new file mode 100644 index 00000000000..075e6f753f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix026.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_PSO_ALL/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_PSO_ALL/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_PSO_ALL/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_PSO_ALL/test.desc new file mode 100644 index 00000000000..ed69c4f25dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix026.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPC/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPC/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPC/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPC/test.desc new file mode 100644 index 00000000000..3854647c08a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix026.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc new file mode 100644 index 00000000000..6602c2cdffe --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix026.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_RMO_ALL/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_RMO_ALL/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_RMO_ALL/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_RMO_ALL/test.desc new file mode 100644 index 00000000000..88618a69fec --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix026.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPC/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPC/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPC/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPC/test.desc new file mode 100644 index 00000000000..b8078c0e8e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix026.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc new file mode 100644 index 00000000000..8a2d613123f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix026.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/test.desc new file mode 100644 index 00000000000..461f2a12ff5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix026.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_TSO_ALL/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_TSO_ALL/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_TSO_ALL/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_TSO_ALL/test.desc new file mode 100644 index 00000000000..b49e486dfd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix026.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPC/mix026.c b/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPC/mix026.c new file mode 100644 index 00000000000..85cd0ab7276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPC/mix026.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPC/test.desc new file mode 100644 index 00000000000..294275d35d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix026.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..cf6cf9b3b92 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix027.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_POWER_ALL/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_POWER_ALL/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_POWER_ALL/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_POWER_ALL/test.desc new file mode 100644 index 00000000000..9bfc6212ba2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix027.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPC/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPC/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPC/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPC/test.desc new file mode 100644 index 00000000000..7a64adc9901 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix027.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_PSO_ALL/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_PSO_ALL/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_PSO_ALL/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_PSO_ALL/test.desc new file mode 100644 index 00000000000..0db81ab402d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix027.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPC/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPC/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPC/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPC/test.desc new file mode 100644 index 00000000000..4dd4eb512a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix027.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc new file mode 100644 index 00000000000..1e453b7c929 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix027.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_RMO_ALL/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_RMO_ALL/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_RMO_ALL/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_RMO_ALL/test.desc new file mode 100644 index 00000000000..e57a058c924 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix027.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPC/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPC/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPC/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPC/test.desc new file mode 100644 index 00000000000..bab06efa22d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix027.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc new file mode 100644 index 00000000000..7a9bfcaf11f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix027.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/test.desc new file mode 100644 index 00000000000..9bbfc12e13f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix027.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_TSO_ALL/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_TSO_ALL/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_TSO_ALL/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_TSO_ALL/test.desc new file mode 100644 index 00000000000..4f05e37e1a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix027.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPC/mix027.c b/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPC/mix027.c new file mode 100644 index 00000000000..287b7ed9e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPC/mix027.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPC/test.desc new file mode 100644 index 00000000000..12df37b9ce2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix027.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..57fdcad4c14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix028.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_POWER_ALL/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_POWER_ALL/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_POWER_ALL/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_POWER_ALL/test.desc new file mode 100644 index 00000000000..9d8af788211 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPC/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPC/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPC/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPC/test.desc new file mode 100644 index 00000000000..6dc2f0ce022 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc new file mode 100644 index 00000000000..61aaecdebd2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_PSO_ALL/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_PSO_ALL/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_PSO_ALL/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_PSO_ALL/test.desc new file mode 100644 index 00000000000..dea23f351f8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPC/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPC/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPC/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPC/test.desc new file mode 100644 index 00000000000..73d480b8f9e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc new file mode 100644 index 00000000000..ba1151ee05b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_RMO_ALL/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_RMO_ALL/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_RMO_ALL/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_RMO_ALL/test.desc new file mode 100644 index 00000000000..f9652d6d3cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPC/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPC/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPC/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPC/test.desc new file mode 100644 index 00000000000..31079dffdf1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc new file mode 100644 index 00000000000..9f29b71f1e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/test.desc new file mode 100644 index 00000000000..fc5cc8c38d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix028.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_TSO_ALL/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_TSO_ALL/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_TSO_ALL/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_TSO_ALL/test.desc new file mode 100644 index 00000000000..cc5c682204c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPC/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPC/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPC/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPC/test.desc new file mode 100644 index 00000000000..88358cb16f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/mix028.c b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/mix028.c new file mode 100644 index 00000000000..c78c57a4539 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/mix028.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc new file mode 100644 index 00000000000..3ffb06d3f00 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix028.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e83cb3c966f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix029.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_POWER_ALL/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_POWER_ALL/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_POWER_ALL/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_POWER_ALL/test.desc new file mode 100644 index 00000000000..ac8e028fed0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix029.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPC/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPC/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPC/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPC/test.desc new file mode 100644 index 00000000000..9e47689ee94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix029.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_PSO_ALL/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_PSO_ALL/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_PSO_ALL/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_PSO_ALL/test.desc new file mode 100644 index 00000000000..cd61cfd2e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix029.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPC/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPC/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPC/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPC/test.desc new file mode 100644 index 00000000000..0410d4185bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix029.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc new file mode 100644 index 00000000000..d0730373fd5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix029.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_RMO_ALL/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_RMO_ALL/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_RMO_ALL/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_RMO_ALL/test.desc new file mode 100644 index 00000000000..6de3d04c263 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix029.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPC/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPC/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPC/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPC/test.desc new file mode 100644 index 00000000000..d575d7f087e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix029.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc new file mode 100644 index 00000000000..8cf7aef6481 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix029.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/test.desc new file mode 100644 index 00000000000..91b289116e1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix029.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_TSO_ALL/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_TSO_ALL/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_TSO_ALL/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_TSO_ALL/test.desc new file mode 100644 index 00000000000..570d10dc538 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix029.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPC/mix029.c b/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPC/mix029.c new file mode 100644 index 00000000000..6761e730a9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPC/mix029.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 2 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPC/test.desc new file mode 100644 index 00000000000..c0a12e8c0a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix029.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..ede2af5c8a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix030.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_POWER_ALL/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_POWER_ALL/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_POWER_ALL/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_POWER_ALL/test.desc new file mode 100644 index 00000000000..9e36547304c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix030.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPC/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPC/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPC/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPC/test.desc new file mode 100644 index 00000000000..5028a5b1b33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix030.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_PSO_ALL/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_PSO_ALL/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_PSO_ALL/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_PSO_ALL/test.desc new file mode 100644 index 00000000000..856fcd5078c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix030.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPC/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPC/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPC/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPC/test.desc new file mode 100644 index 00000000000..7365e374a54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix030.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc new file mode 100644 index 00000000000..0ed4168b35b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix030.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_RMO_ALL/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_RMO_ALL/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_RMO_ALL/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_RMO_ALL/test.desc new file mode 100644 index 00000000000..d1a80819c08 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix030.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPC/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPC/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPC/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPC/test.desc new file mode 100644 index 00000000000..fcd5d963152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix030.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc new file mode 100644 index 00000000000..f621c845930 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix030.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/test.desc new file mode 100644 index 00000000000..a70fabd2b73 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix030.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_TSO_ALL/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_TSO_ALL/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_TSO_ALL/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_TSO_ALL/test.desc new file mode 100644 index 00000000000..f4e0ac6c1ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix030.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPC/mix030.c b/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPC/mix030.c new file mode 100644 index 00000000000..4e4d8bd7cb1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPC/mix030.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = z; + __unbuffered_p3_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 2 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPC/test.desc new file mode 100644 index 00000000000..d9c3a0c2cc8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix030.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..481b8dc913d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix031.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_POWER_ALL/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_POWER_ALL/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_POWER_ALL/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_POWER_ALL/test.desc new file mode 100644 index 00000000000..98da2dc5df3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPC/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPC/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPC/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPC/test.desc new file mode 100644 index 00000000000..b92643ebfe0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc new file mode 100644 index 00000000000..327e1648b91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_PSO_ALL/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_PSO_ALL/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_PSO_ALL/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_PSO_ALL/test.desc new file mode 100644 index 00000000000..c05abe13e69 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPC/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPC/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPC/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPC/test.desc new file mode 100644 index 00000000000..a405b6c6fe8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc new file mode 100644 index 00000000000..20b75e5756c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_RMO_ALL/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_RMO_ALL/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_RMO_ALL/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_RMO_ALL/test.desc new file mode 100644 index 00000000000..1629eab2dc2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPC/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPC/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPC/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPC/test.desc new file mode 100644 index 00000000000..426fa654c85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc new file mode 100644 index 00000000000..2abf1a20715 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/test.desc new file mode 100644 index 00000000000..1375ec90293 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix031.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_TSO_ALL/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_TSO_ALL/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_TSO_ALL/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_TSO_ALL/test.desc new file mode 100644 index 00000000000..213766cca70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPC/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPC/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPC/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPC/test.desc new file mode 100644 index 00000000000..f58d34a502b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/mix031.c b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/mix031.c new file mode 100644 index 00000000000..98e26afb64f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/mix031.c @@ -0,0 +1,60 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc new file mode 100644 index 00000000000..f1b9456b6ad --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix031.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..ee644199c24 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix032.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_POWER_ALL/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_POWER_ALL/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_POWER_ALL/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_POWER_ALL/test.desc new file mode 100644 index 00000000000..fea54e7e0f9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix032.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPC/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPC/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPC/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPC/test.desc new file mode 100644 index 00000000000..93cb5da81d4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix032.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc new file mode 100644 index 00000000000..fda02d7ff17 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix032.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_PSO_ALL/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_PSO_ALL/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_PSO_ALL/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_PSO_ALL/test.desc new file mode 100644 index 00000000000..4c0426743c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix032.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPC/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPC/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPC/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPC/test.desc new file mode 100644 index 00000000000..7db86d06abb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix032.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc new file mode 100644 index 00000000000..54d0a56cecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix032.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_RMO_ALL/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_RMO_ALL/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_RMO_ALL/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_RMO_ALL/test.desc new file mode 100644 index 00000000000..94d91362314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix032.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPC/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPC/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPC/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPC/test.desc new file mode 100644 index 00000000000..b4f22b2795b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix032.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc new file mode 100644 index 00000000000..26a559a7c89 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix032.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/test.desc new file mode 100644 index 00000000000..5cc4ff25e37 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix032.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_TSO_ALL/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_TSO_ALL/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_TSO_ALL/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_TSO_ALL/test.desc new file mode 100644 index 00000000000..ef6e58a90bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix032.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPC/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPC/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPC/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPC/test.desc new file mode 100644 index 00000000000..04f62b900ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix032.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/mix032.c b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/mix032.c new file mode 100644 index 00000000000..70fa96ecd51 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/mix032.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc new file mode 100644 index 00000000000..40e29649ec4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix032.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..a5e42db7d22 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix033.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_POWER_ALL/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_POWER_ALL/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_POWER_ALL/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_POWER_ALL/test.desc new file mode 100644 index 00000000000..87d5a7c58a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix033.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPC/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPC/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPC/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPC/test.desc new file mode 100644 index 00000000000..5c568771d57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix033.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc new file mode 100644 index 00000000000..b56231bf460 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix033.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_PSO_ALL/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_PSO_ALL/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_PSO_ALL/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_PSO_ALL/test.desc new file mode 100644 index 00000000000..2a19858dbfd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix033.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPC/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPC/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPC/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPC/test.desc new file mode 100644 index 00000000000..cfbadeedf5c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix033.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc new file mode 100644 index 00000000000..5cf15845731 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix033.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_RMO_ALL/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_RMO_ALL/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_RMO_ALL/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_RMO_ALL/test.desc new file mode 100644 index 00000000000..1be52acd2a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix033.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPC/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPC/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPC/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPC/test.desc new file mode 100644 index 00000000000..50426ab7998 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix033.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc new file mode 100644 index 00000000000..31a8b01b0f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix033.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/test.desc new file mode 100644 index 00000000000..0d15aefa685 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix033.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_TSO_ALL/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_TSO_ALL/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_TSO_ALL/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_TSO_ALL/test.desc new file mode 100644 index 00000000000..719c16d1e1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix033.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPC/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPC/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPC/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPC/test.desc new file mode 100644 index 00000000000..11f70678020 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix033.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/mix033.c b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/mix033.c new file mode 100644 index 00000000000..5cc0ba2d5fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/mix033.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p2_EAX = a; + __unbuffered_p2_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc new file mode 100644 index 00000000000..cc454948c7e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix033.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..6e98029037f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix034.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_POWER_ALL/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_POWER_ALL/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_POWER_ALL/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_POWER_ALL/test.desc new file mode 100644 index 00000000000..d5065dd5bbd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPC/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPC/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPC/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPC/test.desc new file mode 100644 index 00000000000..0adf462590b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc new file mode 100644 index 00000000000..1c04ec1033f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_PSO_ALL/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_PSO_ALL/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_PSO_ALL/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_PSO_ALL/test.desc new file mode 100644 index 00000000000..300e20b6c26 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPC/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPC/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPC/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPC/test.desc new file mode 100644 index 00000000000..01d0254dfaf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc new file mode 100644 index 00000000000..777700d1c13 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_RMO_ALL/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_RMO_ALL/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_RMO_ALL/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_RMO_ALL/test.desc new file mode 100644 index 00000000000..aa7bf470b8b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPC/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPC/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPC/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPC/test.desc new file mode 100644 index 00000000000..279b242d829 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc new file mode 100644 index 00000000000..694c62171c5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/test.desc new file mode 100644 index 00000000000..996ad273dba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix034.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_TSO_ALL/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_TSO_ALL/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_TSO_ALL/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_TSO_ALL/test.desc new file mode 100644 index 00000000000..919d638b57b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPC/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPC/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPC/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPC/test.desc new file mode 100644 index 00000000000..ba1c0f8d004 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/mix034.c b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/mix034.c new file mode 100644 index 00000000000..df37c75bd0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/mix034.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc new file mode 100644 index 00000000000..b27fdafac44 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix034.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..af54b8a0604 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix035.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_POWER_ALL/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_POWER_ALL/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_POWER_ALL/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_POWER_ALL/test.desc new file mode 100644 index 00000000000..c505462de98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPC/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPC/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPC/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPC/test.desc new file mode 100644 index 00000000000..72bafa9f602 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc new file mode 100644 index 00000000000..ae4af5415bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_PSO_ALL/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_PSO_ALL/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_PSO_ALL/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_PSO_ALL/test.desc new file mode 100644 index 00000000000..8441628f3fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPC/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPC/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPC/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPC/test.desc new file mode 100644 index 00000000000..687ab51438d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc new file mode 100644 index 00000000000..a47c1d6f771 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_RMO_ALL/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_RMO_ALL/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_RMO_ALL/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_RMO_ALL/test.desc new file mode 100644 index 00000000000..1bbf0646a94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPC/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPC/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPC/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPC/test.desc new file mode 100644 index 00000000000..42992bf6e57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc new file mode 100644 index 00000000000..db0c16c3d7e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/test.desc new file mode 100644 index 00000000000..d6eb0405f1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix035.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_TSO_ALL/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_TSO_ALL/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_TSO_ALL/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_TSO_ALL/test.desc new file mode 100644 index 00000000000..010c11537ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPC/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPC/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPC/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPC/test.desc new file mode 100644 index 00000000000..9d7935459fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/mix035.c b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/mix035.c new file mode 100644 index 00000000000..663f82f9c87 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/mix035.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc new file mode 100644 index 00000000000..e82626b11a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix035.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..3f83e4f25bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix036.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_POWER_ALL/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_POWER_ALL/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_POWER_ALL/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_POWER_ALL/test.desc new file mode 100644 index 00000000000..25429ad3a6d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix036.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPC/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPC/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPC/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPC/test.desc new file mode 100644 index 00000000000..645375e0530 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix036.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_PSO_ALL/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_PSO_ALL/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_PSO_ALL/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_PSO_ALL/test.desc new file mode 100644 index 00000000000..b613d0e2569 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix036.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPC/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPC/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPC/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPC/test.desc new file mode 100644 index 00000000000..f9306bfd231 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix036.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc new file mode 100644 index 00000000000..f746fa74cd2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix036.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_RMO_ALL/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_RMO_ALL/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_RMO_ALL/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_RMO_ALL/test.desc new file mode 100644 index 00000000000..50586ef1cf7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix036.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPC/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPC/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPC/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPC/test.desc new file mode 100644 index 00000000000..df2236edcce --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix036.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc new file mode 100644 index 00000000000..1ac82d7bb97 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix036.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/test.desc new file mode 100644 index 00000000000..75591bf7cae --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix036.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_TSO_ALL/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_TSO_ALL/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_TSO_ALL/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_TSO_ALL/test.desc new file mode 100644 index 00000000000..59e15e020a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix036.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPC/mix036.c b/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPC/mix036.c new file mode 100644 index 00000000000..81ecede413b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPC/mix036.c @@ -0,0 +1,83 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPC/test.desc new file mode 100644 index 00000000000..9a84810d1ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix036.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..59ff598762c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix037.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_POWER_ALL/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_POWER_ALL/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_POWER_ALL/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_POWER_ALL/test.desc new file mode 100644 index 00000000000..568fc4ec1a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix037.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPC/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPC/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPC/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPC/test.desc new file mode 100644 index 00000000000..0c60e3dacba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix037.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_PSO_ALL/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_PSO_ALL/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_PSO_ALL/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_PSO_ALL/test.desc new file mode 100644 index 00000000000..5853a9792e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix037.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPC/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPC/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPC/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPC/test.desc new file mode 100644 index 00000000000..36dd1bf99b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix037.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc new file mode 100644 index 00000000000..93857eb374c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix037.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_RMO_ALL/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_RMO_ALL/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_RMO_ALL/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_RMO_ALL/test.desc new file mode 100644 index 00000000000..570e9b624fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix037.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPC/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPC/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPC/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPC/test.desc new file mode 100644 index 00000000000..21ad10a7886 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix037.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc new file mode 100644 index 00000000000..e91c73cfa07 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix037.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/test.desc new file mode 100644 index 00000000000..059bf5ea15e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix037.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_TSO_ALL/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_TSO_ALL/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_TSO_ALL/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_TSO_ALL/test.desc new file mode 100644 index 00000000000..80fa4c738e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix037.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPC/mix037.c b/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPC/mix037.c new file mode 100644 index 00000000000..f008e0072d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPC/mix037.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPC/test.desc new file mode 100644 index 00000000000..2d024caaf05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix037.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..06257bdfbc9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix038.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_POWER_ALL/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_POWER_ALL/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_POWER_ALL/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_POWER_ALL/test.desc new file mode 100644 index 00000000000..f2805b2a96a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPC/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPC/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPC/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPC/test.desc new file mode 100644 index 00000000000..38fe83762ac --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc new file mode 100644 index 00000000000..cc58cfbc368 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_PSO_ALL/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_PSO_ALL/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_PSO_ALL/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_PSO_ALL/test.desc new file mode 100644 index 00000000000..d86891d61fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPC/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPC/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPC/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPC/test.desc new file mode 100644 index 00000000000..f307551cf44 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc new file mode 100644 index 00000000000..ff92f8d7813 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_RMO_ALL/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_RMO_ALL/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_RMO_ALL/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_RMO_ALL/test.desc new file mode 100644 index 00000000000..bc3d7ac428d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPC/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPC/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPC/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPC/test.desc new file mode 100644 index 00000000000..7854eef76c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc new file mode 100644 index 00000000000..1af820ff9a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/test.desc new file mode 100644 index 00000000000..5315581fea8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix038.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_TSO_ALL/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_TSO_ALL/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_TSO_ALL/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_TSO_ALL/test.desc new file mode 100644 index 00000000000..d2162c9a045 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPC/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPC/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPC/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPC/test.desc new file mode 100644 index 00000000000..be62b8e209f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/mix038.c b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/mix038.c new file mode 100644 index 00000000000..361e25780bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/mix038.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc new file mode 100644 index 00000000000..34de6481b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix038.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..aca21743b01 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix039.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_POWER_ALL/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_POWER_ALL/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_POWER_ALL/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_POWER_ALL/test.desc new file mode 100644 index 00000000000..81179c1a947 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix039.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPC/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPC/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPC/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPC/test.desc new file mode 100644 index 00000000000..4c0766f1099 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix039.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_PSO_ALL/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_PSO_ALL/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_PSO_ALL/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_PSO_ALL/test.desc new file mode 100644 index 00000000000..dd4e3ce331f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix039.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPC/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPC/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPC/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPC/test.desc new file mode 100644 index 00000000000..f3c3d7f4f9e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix039.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc new file mode 100644 index 00000000000..a9562a9300a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix039.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_RMO_ALL/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_RMO_ALL/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_RMO_ALL/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_RMO_ALL/test.desc new file mode 100644 index 00000000000..112797d3fc0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix039.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPC/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPC/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPC/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPC/test.desc new file mode 100644 index 00000000000..41593f293ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix039.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc new file mode 100644 index 00000000000..fcf5a4ef243 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix039.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/test.desc new file mode 100644 index 00000000000..e80a4c86585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix039.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_TSO_ALL/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_TSO_ALL/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_TSO_ALL/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_TSO_ALL/test.desc new file mode 100644 index 00000000000..30d4adc9573 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix039.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPC/mix039.c b/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPC/mix039.c new file mode 100644 index 00000000000..e0fc4583762 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPC/mix039.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPC/test.desc new file mode 100644 index 00000000000..ec23541f27e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix039.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..388cd5c9bd5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix040.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_POWER_ALL/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_POWER_ALL/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_POWER_ALL/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_POWER_ALL/test.desc new file mode 100644 index 00000000000..547c9afe7fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix040.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPC/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPC/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPC/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPC/test.desc new file mode 100644 index 00000000000..eed5269a97e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix040.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_PSO_ALL/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_PSO_ALL/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_PSO_ALL/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_PSO_ALL/test.desc new file mode 100644 index 00000000000..3919427026f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix040.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPC/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPC/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPC/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPC/test.desc new file mode 100644 index 00000000000..38516095e26 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix040.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc new file mode 100644 index 00000000000..528600d279e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix040.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_RMO_ALL/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_RMO_ALL/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_RMO_ALL/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_RMO_ALL/test.desc new file mode 100644 index 00000000000..aaea4172e5b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix040.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPC/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPC/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPC/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPC/test.desc new file mode 100644 index 00000000000..3d2cf64e7ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix040.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc new file mode 100644 index 00000000000..77c226adbc9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix040.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/test.desc new file mode 100644 index 00000000000..65bd1a35353 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix040.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_TSO_ALL/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_TSO_ALL/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_TSO_ALL/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_TSO_ALL/test.desc new file mode 100644 index 00000000000..9c7273d4585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix040.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPC/mix040.c b/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPC/mix040.c new file mode 100644 index 00000000000..fe3d5cc5d70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPC/mix040.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPC/test.desc new file mode 100644 index 00000000000..a124c280cce --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix040.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..994d99b04a0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix041.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_POWER_ALL/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_POWER_ALL/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_POWER_ALL/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_POWER_ALL/test.desc new file mode 100644 index 00000000000..f9033107eb4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPC/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPC/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPC/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPC/test.desc new file mode 100644 index 00000000000..802ebca1f0d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc new file mode 100644 index 00000000000..711b054df6a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_PSO_ALL/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_PSO_ALL/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_PSO_ALL/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_PSO_ALL/test.desc new file mode 100644 index 00000000000..06d720378d6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPC/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPC/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPC/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPC/test.desc new file mode 100644 index 00000000000..55011db1cf9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc new file mode 100644 index 00000000000..95f2d19d23a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_RMO_ALL/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_RMO_ALL/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_RMO_ALL/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_RMO_ALL/test.desc new file mode 100644 index 00000000000..ceb1d62b8e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPC/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPC/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPC/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPC/test.desc new file mode 100644 index 00000000000..14c013abaa1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc new file mode 100644 index 00000000000..cd73c987669 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/test.desc new file mode 100644 index 00000000000..9b25b4d9729 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix041.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_TSO_ALL/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_TSO_ALL/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_TSO_ALL/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_TSO_ALL/test.desc new file mode 100644 index 00000000000..e1f9fa368e5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPC/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPC/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPC/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPC/test.desc new file mode 100644 index 00000000000..afcb44f4365 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/mix041.c b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/mix041.c new file mode 100644 index 00000000000..ffb44a789bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/mix041.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc new file mode 100644 index 00000000000..2099eb38d91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix041.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..babe93d08a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix042.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_POWER_ALL/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_POWER_ALL/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_POWER_ALL/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_POWER_ALL/test.desc new file mode 100644 index 00000000000..c05c18d0aea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPC/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPC/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPC/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPC/test.desc new file mode 100644 index 00000000000..d712d6a656b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc new file mode 100644 index 00000000000..3a26c389889 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_PSO_ALL/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_PSO_ALL/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_PSO_ALL/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_PSO_ALL/test.desc new file mode 100644 index 00000000000..9e98bb3dc3e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPC/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPC/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPC/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPC/test.desc new file mode 100644 index 00000000000..3c45d226048 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc new file mode 100644 index 00000000000..5a8f2949972 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_RMO_ALL/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_RMO_ALL/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_RMO_ALL/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_RMO_ALL/test.desc new file mode 100644 index 00000000000..3b8b10d9646 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPC/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPC/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPC/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPC/test.desc new file mode 100644 index 00000000000..1355fd13772 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc new file mode 100644 index 00000000000..ce89e65a7e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/test.desc new file mode 100644 index 00000000000..21bffa97bb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix042.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_TSO_ALL/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_TSO_ALL/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_TSO_ALL/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_TSO_ALL/test.desc new file mode 100644 index 00000000000..69fc115760a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPC/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPC/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPC/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPC/test.desc new file mode 100644 index 00000000000..f665adf0618 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/mix042.c b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/mix042.c new file mode 100644 index 00000000000..7ea1de241c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/mix042.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc new file mode 100644 index 00000000000..66d65d77642 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix042.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..3f8f40fed53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix043.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_POWER_ALL/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_POWER_ALL/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_POWER_ALL/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_POWER_ALL/test.desc new file mode 100644 index 00000000000..2ec9143b2b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix043.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPC/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPC/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPC/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPC/test.desc new file mode 100644 index 00000000000..a6a9a971569 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix043.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_PSO_ALL/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_PSO_ALL/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_PSO_ALL/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_PSO_ALL/test.desc new file mode 100644 index 00000000000..659a08f4b9e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix043.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPC/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPC/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPC/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPC/test.desc new file mode 100644 index 00000000000..f49173915d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix043.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc new file mode 100644 index 00000000000..cc7c4025847 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix043.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_RMO_ALL/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_RMO_ALL/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_RMO_ALL/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_RMO_ALL/test.desc new file mode 100644 index 00000000000..ea68bd24399 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix043.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPC/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPC/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPC/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPC/test.desc new file mode 100644 index 00000000000..5518492a09e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix043.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc new file mode 100644 index 00000000000..c9f80bd777c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix043.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/test.desc new file mode 100644 index 00000000000..0113bd7dfda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix043.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_TSO_ALL/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_TSO_ALL/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_TSO_ALL/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_TSO_ALL/test.desc new file mode 100644 index 00000000000..d0ac416568f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix043.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPC/mix043.c b/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPC/mix043.c new file mode 100644 index 00000000000..2a169c82e10 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPC/mix043.c @@ -0,0 +1,81 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPC/test.desc new file mode 100644 index 00000000000..3939b194be8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix043.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..d958587b6b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix044.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_POWER_ALL/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_POWER_ALL/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_POWER_ALL/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_POWER_ALL/test.desc new file mode 100644 index 00000000000..7f5029d9083 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix044.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPC/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPC/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPC/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPC/test.desc new file mode 100644 index 00000000000..69bb12814de --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix044.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_PSO_ALL/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_PSO_ALL/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_PSO_ALL/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_PSO_ALL/test.desc new file mode 100644 index 00000000000..f211d277594 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix044.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPC/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPC/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPC/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPC/test.desc new file mode 100644 index 00000000000..9817c62663d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix044.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc new file mode 100644 index 00000000000..3a7c02a1b9a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix044.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_RMO_ALL/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_RMO_ALL/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_RMO_ALL/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_RMO_ALL/test.desc new file mode 100644 index 00000000000..aeb83dc8e6f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix044.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPC/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPC/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPC/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPC/test.desc new file mode 100644 index 00000000000..c7aa39f2a75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix044.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc new file mode 100644 index 00000000000..7ff464f6b97 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix044.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/test.desc new file mode 100644 index 00000000000..6e79d70ced7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix044.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_TSO_ALL/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_TSO_ALL/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_TSO_ALL/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_TSO_ALL/test.desc new file mode 100644 index 00000000000..158696444cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix044.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPC/mix044.c b/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPC/mix044.c new file mode 100644 index 00000000000..ffd480f859b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPC/mix044.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPC/test.desc new file mode 100644 index 00000000000..b02a718a1fb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix044.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..616a5a4b46b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix045.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_POWER_ALL/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_POWER_ALL/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_POWER_ALL/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_POWER_ALL/test.desc new file mode 100644 index 00000000000..21fcd1e50bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPC/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPC/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPC/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPC/test.desc new file mode 100644 index 00000000000..8af04c84794 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc new file mode 100644 index 00000000000..3d5db2ba379 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_PSO_ALL/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_PSO_ALL/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_PSO_ALL/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_PSO_ALL/test.desc new file mode 100644 index 00000000000..b6e59b2cce4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPC/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPC/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPC/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPC/test.desc new file mode 100644 index 00000000000..37e1758456a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc new file mode 100644 index 00000000000..1cbc893b90c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_RMO_ALL/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_RMO_ALL/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_RMO_ALL/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_RMO_ALL/test.desc new file mode 100644 index 00000000000..1c019788d2d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPC/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPC/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPC/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPC/test.desc new file mode 100644 index 00000000000..b1fec136940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc new file mode 100644 index 00000000000..71746ca2179 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/test.desc new file mode 100644 index 00000000000..1759bcac87f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix045.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_TSO_ALL/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_TSO_ALL/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_TSO_ALL/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_TSO_ALL/test.desc new file mode 100644 index 00000000000..38648d720b1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPC/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPC/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPC/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPC/test.desc new file mode 100644 index 00000000000..9c2fd11a5ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/mix045.c b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/mix045.c new file mode 100644 index 00000000000..3753872e69f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/mix045.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p2_EAX = z; + __unbuffered_p2_EBX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc new file mode 100644 index 00000000000..82e944c8f74 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix045.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..d6f355c54dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix046.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_POWER_ALL/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_POWER_ALL/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_POWER_ALL/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_POWER_ALL/test.desc new file mode 100644 index 00000000000..8574a1db491 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix046.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPC/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPC/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPC/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPC/test.desc new file mode 100644 index 00000000000..b948a6d69f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix046.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_PSO_ALL/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_PSO_ALL/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_PSO_ALL/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_PSO_ALL/test.desc new file mode 100644 index 00000000000..409d6574267 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix046.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPC/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPC/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPC/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPC/test.desc new file mode 100644 index 00000000000..020b5ececfd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix046.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc new file mode 100644 index 00000000000..c7a6d4650f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix046.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_RMO_ALL/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_RMO_ALL/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_RMO_ALL/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_RMO_ALL/test.desc new file mode 100644 index 00000000000..2c91d27047b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +mix046.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPC/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPC/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPC/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPC/test.desc new file mode 100644 index 00000000000..9c1e73af456 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix046.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc new file mode 100644 index 00000000000..a4c270f5bb2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix046.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/test.desc new file mode 100644 index 00000000000..3aa8e912fa9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix046.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_TSO_ALL/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_TSO_ALL/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_TSO_ALL/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_TSO_ALL/test.desc new file mode 100644 index 00000000000..e882aed8ff6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix046.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPC/mix046.c b/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPC/mix046.c new file mode 100644 index 00000000000..a119dc0cff9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPC/mix046.c @@ -0,0 +1,80 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0 && + __unbuffered_p3_EAX == 1 && __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPC/test.desc new file mode 100644 index 00000000000..022c4960e0c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix046.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..df00b601e29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix047.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_POWER_ALL/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_POWER_ALL/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_POWER_ALL/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_POWER_ALL/test.desc new file mode 100644 index 00000000000..3c69a58fcbd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix047.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPC/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPC/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPC/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPC/test.desc new file mode 100644 index 00000000000..bb1ba07c82a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix047.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_PSO_ALL/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_PSO_ALL/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_PSO_ALL/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_PSO_ALL/test.desc new file mode 100644 index 00000000000..20a21531626 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix047.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPC/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPC/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPC/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPC/test.desc new file mode 100644 index 00000000000..ad3590e29d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix047.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc new file mode 100644 index 00000000000..65b0512ab5a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix047.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_RMO_ALL/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_RMO_ALL/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_RMO_ALL/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_RMO_ALL/test.desc new file mode 100644 index 00000000000..cf7784ed252 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix047.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPC/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPC/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPC/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPC/test.desc new file mode 100644 index 00000000000..d6ab377339b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix047.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc new file mode 100644 index 00000000000..7c119d39bb5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix047.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/test.desc new file mode 100644 index 00000000000..76364e240e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix047.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_TSO_ALL/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_TSO_ALL/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_TSO_ALL/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_TSO_ALL/test.desc new file mode 100644 index 00000000000..d2a319da54d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix047.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPC/mix047.c b/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPC/mix047.c new file mode 100644 index 00000000000..d86374c8fda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPC/mix047.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int __unbuffered_p3_EBX = 0; +int a = 0; +int b = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + b = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + a = 1; + __unbuffered_p3_EAX = a; + __unbuffered_p3_EBX = b; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 1 && + __unbuffered_p3_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPC/test.desc new file mode 100644 index 00000000000..0901322c840 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix047.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..253dc569999 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix048.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_POWER_ALL/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_POWER_ALL/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_POWER_ALL/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_POWER_ALL/test.desc new file mode 100644 index 00000000000..008dceb6393 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPC/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPC/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPC/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPC/test.desc new file mode 100644 index 00000000000..42a7bb19088 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc new file mode 100644 index 00000000000..c04ecbb42ca --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_PSO_ALL/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_PSO_ALL/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_PSO_ALL/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_PSO_ALL/test.desc new file mode 100644 index 00000000000..feca1d40942 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPC/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPC/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPC/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPC/test.desc new file mode 100644 index 00000000000..ef9b2984e78 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc new file mode 100644 index 00000000000..c678ad50eb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_RMO_ALL/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_RMO_ALL/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_RMO_ALL/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_RMO_ALL/test.desc new file mode 100644 index 00000000000..e0e84490b53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPC/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPC/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPC/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPC/test.desc new file mode 100644 index 00000000000..98559f95d73 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc new file mode 100644 index 00000000000..0f4f0e728ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/test.desc new file mode 100644 index 00000000000..cddb18eabe4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix048.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_TSO_ALL/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_TSO_ALL/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_TSO_ALL/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_TSO_ALL/test.desc new file mode 100644 index 00000000000..da8772332ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPC/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPC/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPC/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPC/test.desc new file mode 100644 index 00000000000..e2aef27a093 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/mix048.c b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/mix048.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/mix048.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc new file mode 100644 index 00000000000..7bf06c04ee6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix048.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..6ae8fa688cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix049.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_POWER_ALL/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_POWER_ALL/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_POWER_ALL/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_POWER_ALL/test.desc new file mode 100644 index 00000000000..cc9722d37b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPC/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPC/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPC/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPC/test.desc new file mode 100644 index 00000000000..f1f2fabad8c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc new file mode 100644 index 00000000000..f113fca46f9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_PSO_ALL/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_PSO_ALL/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_PSO_ALL/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_PSO_ALL/test.desc new file mode 100644 index 00000000000..15686de642f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPC/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPC/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPC/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPC/test.desc new file mode 100644 index 00000000000..9e21388ee79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc new file mode 100644 index 00000000000..969b2f11991 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_RMO_ALL/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_RMO_ALL/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_RMO_ALL/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_RMO_ALL/test.desc new file mode 100644 index 00000000000..e20b30614fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPC/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPC/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPC/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPC/test.desc new file mode 100644 index 00000000000..bdd5e4b47cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc new file mode 100644 index 00000000000..f6431ae0503 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/test.desc new file mode 100644 index 00000000000..95592caefe8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix049.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_TSO_ALL/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_TSO_ALL/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_TSO_ALL/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_TSO_ALL/test.desc new file mode 100644 index 00000000000..4f3b5c69e45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPC/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPC/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPC/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPC/test.desc new file mode 100644 index 00000000000..c31897dd8f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/mix049.c b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/mix049.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/mix049.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc new file mode 100644 index 00000000000..b41d36a9ec4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix049.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..2f91e488b50 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix050.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_POWER_ALL/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_POWER_ALL/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_POWER_ALL/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_POWER_ALL/test.desc new file mode 100644 index 00000000000..164faab860c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix050.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPC/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPC/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPC/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPC/test.desc new file mode 100644 index 00000000000..f66909523ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix050.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_PSO_ALL/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_PSO_ALL/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_PSO_ALL/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_PSO_ALL/test.desc new file mode 100644 index 00000000000..f7c29a08032 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix050.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPC/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPC/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPC/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPC/test.desc new file mode 100644 index 00000000000..00055ea3289 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix050.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc new file mode 100644 index 00000000000..75ea2431a94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix050.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_RMO_ALL/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_RMO_ALL/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_RMO_ALL/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_RMO_ALL/test.desc new file mode 100644 index 00000000000..ee234b99563 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix050.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPC/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPC/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPC/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPC/test.desc new file mode 100644 index 00000000000..8abcbae1210 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix050.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc new file mode 100644 index 00000000000..26c5ff272d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix050.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/test.desc new file mode 100644 index 00000000000..08c78041eeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix050.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_TSO_ALL/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_TSO_ALL/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_TSO_ALL/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_TSO_ALL/test.desc new file mode 100644 index 00000000000..c5a3c9afd20 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix050.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPC/mix050.c b/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPC/mix050.c new file mode 100644 index 00000000000..1af879986af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPC/mix050.c @@ -0,0 +1,78 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPC/test.desc new file mode 100644 index 00000000000..4ccfbd10bc2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix050.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..c15494cbb91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix051.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_POWER_ALL/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_POWER_ALL/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_POWER_ALL/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_POWER_ALL/test.desc new file mode 100644 index 00000000000..8ef52eb7804 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix051.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPC/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPC/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPC/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPC/test.desc new file mode 100644 index 00000000000..9d6621ffaaa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix051.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_PSO_ALL/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_PSO_ALL/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_PSO_ALL/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_PSO_ALL/test.desc new file mode 100644 index 00000000000..1ffc6d42e1c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix051.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPC/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPC/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPC/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPC/test.desc new file mode 100644 index 00000000000..9b95746c58c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix051.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc new file mode 100644 index 00000000000..85ee4839a14 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix051.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_RMO_ALL/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_RMO_ALL/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_RMO_ALL/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_RMO_ALL/test.desc new file mode 100644 index 00000000000..9a7c4510abb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix051.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPC/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPC/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPC/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPC/test.desc new file mode 100644 index 00000000000..16c34f529c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix051.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc new file mode 100644 index 00000000000..272f68552bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix051.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/test.desc new file mode 100644 index 00000000000..26a2067a38a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix051.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_TSO_ALL/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_TSO_ALL/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_TSO_ALL/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_TSO_ALL/test.desc new file mode 100644 index 00000000000..6a27315516c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix051.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPC/mix051.c b/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPC/mix051.c new file mode 100644 index 00000000000..6dcd8787e85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPC/mix051.c @@ -0,0 +1,77 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0 && + __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPC/test.desc new file mode 100644 index 00000000000..c13e1331079 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix051.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b914fe215ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix052.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_POWER_ALL/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_POWER_ALL/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_POWER_ALL/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_POWER_ALL/test.desc new file mode 100644 index 00000000000..807339c55be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPC/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPC/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPC/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPC/test.desc new file mode 100644 index 00000000000..ea7432512a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc new file mode 100644 index 00000000000..a13eddd18a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_PSO_ALL/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_PSO_ALL/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_PSO_ALL/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_PSO_ALL/test.desc new file mode 100644 index 00000000000..885a02de9c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPC/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPC/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPC/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPC/test.desc new file mode 100644 index 00000000000..3d730653eb5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc new file mode 100644 index 00000000000..8e762a1829c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_RMO_ALL/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_RMO_ALL/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_RMO_ALL/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_RMO_ALL/test.desc new file mode 100644 index 00000000000..5e409935a26 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPC/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPC/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPC/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPC/test.desc new file mode 100644 index 00000000000..dcf11a93212 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc new file mode 100644 index 00000000000..b4eac17d1c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/test.desc new file mode 100644 index 00000000000..5c27c33710e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix052.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_TSO_ALL/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_TSO_ALL/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_TSO_ALL/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_TSO_ALL/test.desc new file mode 100644 index 00000000000..3a425232958 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPC/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPC/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPC/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPC/test.desc new file mode 100644 index 00000000000..a212970f95d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/mix052.c b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/mix052.c new file mode 100644 index 00000000000..8ca0123ef40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/mix052.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc new file mode 100644 index 00000000000..94b5db09ca7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix052.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..486b51af5f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix053.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_POWER_ALL/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_POWER_ALL/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_POWER_ALL/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_POWER_ALL/test.desc new file mode 100644 index 00000000000..2ee580120b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix053.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPC/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPC/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPC/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPC/test.desc new file mode 100644 index 00000000000..d8330645f98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix053.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_PSO_ALL/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_PSO_ALL/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_PSO_ALL/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_PSO_ALL/test.desc new file mode 100644 index 00000000000..fdffee44adf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix053.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPC/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPC/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPC/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPC/test.desc new file mode 100644 index 00000000000..b03c7bbc355 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix053.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc new file mode 100644 index 00000000000..225e7209a09 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix053.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_RMO_ALL/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_RMO_ALL/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_RMO_ALL/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_RMO_ALL/test.desc new file mode 100644 index 00000000000..fa4636d0ce0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix053.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPC/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPC/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPC/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPC/test.desc new file mode 100644 index 00000000000..ed4ffe42b49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix053.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc new file mode 100644 index 00000000000..368ee129043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix053.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/test.desc new file mode 100644 index 00000000000..e121c8e1c56 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix053.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_TSO_ALL/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_TSO_ALL/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_TSO_ALL/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_TSO_ALL/test.desc new file mode 100644 index 00000000000..d8a645c1a90 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix053.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPC/mix053.c b/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPC/mix053.c new file mode 100644 index 00000000000..c0c098318fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPC/mix053.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 1; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPC/test.desc new file mode 100644 index 00000000000..9feb3d7a2ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix053.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..85c638170ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix054.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_POWER_ALL/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_POWER_ALL/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_POWER_ALL/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_POWER_ALL/test.desc new file mode 100644 index 00000000000..082d6b13159 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPC/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPC/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPC/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPC/test.desc new file mode 100644 index 00000000000..2e04644c76c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc new file mode 100644 index 00000000000..68f05bda1ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_PSO_ALL/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_PSO_ALL/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_PSO_ALL/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_PSO_ALL/test.desc new file mode 100644 index 00000000000..ae9fb4e44de --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPC/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPC/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPC/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPC/test.desc new file mode 100644 index 00000000000..1c1cba33226 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc new file mode 100644 index 00000000000..ac8ccf7c6c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_RMO_ALL/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_RMO_ALL/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_RMO_ALL/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_RMO_ALL/test.desc new file mode 100644 index 00000000000..a0ce043e9e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPC/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPC/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPC/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPC/test.desc new file mode 100644 index 00000000000..43efd8a0a2d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc new file mode 100644 index 00000000000..627a0ac467a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/test.desc new file mode 100644 index 00000000000..cb48a65f008 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix054.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_TSO_ALL/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_TSO_ALL/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_TSO_ALL/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_TSO_ALL/test.desc new file mode 100644 index 00000000000..aa347ac6846 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPC/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPC/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPC/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPC/test.desc new file mode 100644 index 00000000000..14d20310195 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/mix054.c b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/mix054.c new file mode 100644 index 00000000000..20059ef3f1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/mix054.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc new file mode 100644 index 00000000000..401df11d006 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix054.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..c4c6542e066 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix055.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_POWER_ALL/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_POWER_ALL/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_POWER_ALL/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_POWER_ALL/test.desc new file mode 100644 index 00000000000..62353045993 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix055.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPC/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPC/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPC/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPC/test.desc new file mode 100644 index 00000000000..3b6d070be15 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix055.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_PSO_ALL/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_PSO_ALL/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_PSO_ALL/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_PSO_ALL/test.desc new file mode 100644 index 00000000000..8e2a454bc3a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix055.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPC/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPC/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPC/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPC/test.desc new file mode 100644 index 00000000000..b841f0e8c48 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix055.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc new file mode 100644 index 00000000000..64d92a4dfe4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix055.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_RMO_ALL/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_RMO_ALL/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_RMO_ALL/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_RMO_ALL/test.desc new file mode 100644 index 00000000000..374d7a909fb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix055.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPC/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPC/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPC/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPC/test.desc new file mode 100644 index 00000000000..b8bb61493ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix055.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc new file mode 100644 index 00000000000..1841ad9b82c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix055.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/test.desc new file mode 100644 index 00000000000..ccf54cf7a64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix055.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_TSO_ALL/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_TSO_ALL/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_TSO_ALL/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_TSO_ALL/test.desc new file mode 100644 index 00000000000..c01b91ee681 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix055.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPC/mix055.c b/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPC/mix055.c new file mode 100644 index 00000000000..47ac60f5d40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPC/mix055.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p1_EAX == 0 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPC/test.desc new file mode 100644 index 00000000000..ab9ba085be4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix055.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..7e71d7592df --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix056.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_POWER_ALL/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_POWER_ALL/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_POWER_ALL/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_POWER_ALL/test.desc new file mode 100644 index 00000000000..1e483945575 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPC/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPC/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPC/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPC/test.desc new file mode 100644 index 00000000000..a11c35bed9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc new file mode 100644 index 00000000000..fda27182c6a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_PSO_ALL/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_PSO_ALL/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_PSO_ALL/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_PSO_ALL/test.desc new file mode 100644 index 00000000000..5c249d0f0f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPC/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPC/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPC/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPC/test.desc new file mode 100644 index 00000000000..1a87cf0572d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc new file mode 100644 index 00000000000..d504a1f5ba8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_RMO_ALL/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_RMO_ALL/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_RMO_ALL/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_RMO_ALL/test.desc new file mode 100644 index 00000000000..052ee253c77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPC/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPC/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPC/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPC/test.desc new file mode 100644 index 00000000000..83b00c24e4c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc new file mode 100644 index 00000000000..5a9d00fecb2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/test.desc new file mode 100644 index 00000000000..e7a9d72b08d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix056.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_TSO_ALL/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_TSO_ALL/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_TSO_ALL/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_TSO_ALL/test.desc new file mode 100644 index 00000000000..8ebcd60f710 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPC/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPC/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPC/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPC/test.desc new file mode 100644 index 00000000000..7ed81ca691c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/mix056.c b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/mix056.c new file mode 100644 index 00000000000..03e979dd850 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/mix056.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc new file mode 100644 index 00000000000..4fbd951fe3b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix056.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..fe7025566b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix057.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_POWER_ALL/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_POWER_ALL/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_POWER_ALL/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_POWER_ALL/test.desc new file mode 100644 index 00000000000..77c7be555cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix057.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPC/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPC/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPC/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPC/test.desc new file mode 100644 index 00000000000..e2d7073233e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix057.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_PSO_ALL/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_PSO_ALL/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_PSO_ALL/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_PSO_ALL/test.desc new file mode 100644 index 00000000000..b10ab15231e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix057.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPC/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPC/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPC/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPC/test.desc new file mode 100644 index 00000000000..237e05c5bef --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix057.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc new file mode 100644 index 00000000000..37f9fb1e7fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix057.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_RMO_ALL/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_RMO_ALL/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_RMO_ALL/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_RMO_ALL/test.desc new file mode 100644 index 00000000000..413133ba6ad --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix057.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPC/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPC/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPC/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPC/test.desc new file mode 100644 index 00000000000..e23d8e1c3e9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix057.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc new file mode 100644 index 00000000000..75f6ccc49dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix057.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/test.desc new file mode 100644 index 00000000000..82e89bcf86a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +mix057.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_TSO_ALL/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_TSO_ALL/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_TSO_ALL/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_TSO_ALL/test.desc new file mode 100644 index 00000000000..c07777a914b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix057.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPC/mix057.c b/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPC/mix057.c new file mode 100644 index 00000000000..9954470235d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPC/mix057.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + a = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + z = 2; + __unbuffered_p3_EAX = a; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2 && __unbuffered_p3_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPC/test.desc new file mode 100644 index 00000000000..95838b150f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +mix057.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..6a551e39df4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podwr000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_POWER_ALL/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_ALL/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_ALL/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_ALL/test.desc new file mode 100644 index 00000000000..421473351ed --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPC/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPC/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPC/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPC/test.desc new file mode 100644 index 00000000000..97ce6bfc272 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc new file mode 100644 index 00000000000..6d7807b9b06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_PSO_ALL/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_ALL/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_ALL/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_ALL/test.desc new file mode 100644 index 00000000000..48569ae5d06 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPC/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPC/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPC/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPC/test.desc new file mode 100644 index 00000000000..761beeaa1e8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc new file mode 100644 index 00000000000..ae64c0226c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_RMO_ALL/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_ALL/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_ALL/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_ALL/test.desc new file mode 100644 index 00000000000..314af57c53c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPC/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPC/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPC/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPC/test.desc new file mode 100644 index 00000000000..6b2118f2c8e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc new file mode 100644 index 00000000000..fa7fd1fd100 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/test.desc new file mode 100644 index 00000000000..46883c8e982 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podwr000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_TSO_ALL/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_ALL/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_ALL/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_ALL/test.desc new file mode 100644 index 00000000000..f49bd51d72d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPC/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPC/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPC/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPC/test.desc new file mode 100644 index 00000000000..9f6827af1d1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/podwr000.c b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/podwr000.c new file mode 100644 index 00000000000..ff4936ac13a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/podwr000.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc new file mode 100644 index 00000000000..2182a7fb2e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr000.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..fd1dc895f75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podwr001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_POWER_ALL/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_ALL/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_ALL/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_ALL/test.desc new file mode 100644 index 00000000000..69b9a30c6a4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPC/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPC/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPC/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPC/test.desc new file mode 100644 index 00000000000..d43a2d6578d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc new file mode 100644 index 00000000000..d9c3e7e5c17 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_PSO_ALL/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_ALL/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_ALL/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_ALL/test.desc new file mode 100644 index 00000000000..758a65e7954 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPC/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPC/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPC/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPC/test.desc new file mode 100644 index 00000000000..8ffd68a9c54 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc new file mode 100644 index 00000000000..8c99a6db49f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_RMO_ALL/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_ALL/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_ALL/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_ALL/test.desc new file mode 100644 index 00000000000..ff8dba920f5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPC/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPC/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPC/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPC/test.desc new file mode 100644 index 00000000000..bcb0ab7ab19 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc new file mode 100644 index 00000000000..f7c2088eb90 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/test.desc new file mode 100644 index 00000000000..a204e0ded91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +podwr001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_TSO_ALL/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_ALL/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_ALL/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_ALL/test.desc new file mode 100644 index 00000000000..2c3ebd2c375 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPC/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPC/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPC/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPC/test.desc new file mode 100644 index 00000000000..45a44de05cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/podwr001.c b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/podwr001.c new file mode 100644 index 00000000000..3eee8781152 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/podwr001.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc new file mode 100644 index 00000000000..7a8ce1cefba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +podwr001.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..5eabc63a62c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_POWER_ALL/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_ALL/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_ALL/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_ALL/test.desc new file mode 100644 index 00000000000..fbb692179eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPC/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPC/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPC/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPC/test.desc new file mode 100644 index 00000000000..922454c99a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc new file mode 100644 index 00000000000..18887415c82 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_PSO_ALL/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_ALL/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_ALL/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_ALL/test.desc new file mode 100644 index 00000000000..185f2e7d5cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPC/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPC/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPC/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPC/test.desc new file mode 100644 index 00000000000..9a119158132 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc new file mode 100644 index 00000000000..b8902750eea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_RMO_ALL/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_ALL/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_ALL/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_ALL/test.desc new file mode 100644 index 00000000000..908e4d00fb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPC/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPC/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPC/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPC/test.desc new file mode 100644 index 00000000000..9f676702d0e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc new file mode 100644 index 00000000000..abd84d14a1c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/test.desc new file mode 100644 index 00000000000..6f347493154 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_TSO_ALL/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_ALL/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_ALL/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_ALL/test.desc new file mode 100644 index 00000000000..f21779e6b95 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPC/rfi000.c b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPC/rfi000.c new file mode 100644 index 00000000000..54591084bd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPC/rfi000.c @@ -0,0 +1,53 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPC/test.desc new file mode 100644 index 00000000000..46495d791d5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..4315e292617 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_POWER_ALL/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_ALL/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_ALL/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_ALL/test.desc new file mode 100644 index 00000000000..b5d878600ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPC/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPC/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPC/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPC/test.desc new file mode 100644 index 00000000000..3b4be1b88f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc new file mode 100644 index 00000000000..2fe938ebe00 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_PSO_ALL/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_ALL/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_ALL/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_ALL/test.desc new file mode 100644 index 00000000000..27475e15c8f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPC/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPC/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPC/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPC/test.desc new file mode 100644 index 00000000000..24f64a2ef42 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc new file mode 100644 index 00000000000..97bf497420b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_RMO_ALL/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_ALL/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_ALL/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_ALL/test.desc new file mode 100644 index 00000000000..8a1d9ba0deb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPC/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPC/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPC/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPC/test.desc new file mode 100644 index 00000000000..69352608b8c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc new file mode 100644 index 00000000000..f718c6fcaed --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/test.desc new file mode 100644 index 00000000000..6053cd5f512 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_TSO_ALL/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_ALL/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_ALL/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_ALL/test.desc new file mode 100644 index 00000000000..a69dce9e9a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPC/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPC/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPC/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPC/test.desc new file mode 100644 index 00000000000..31ee875a4d8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/rfi001.c b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/rfi001.c new file mode 100644 index 00000000000..9081cd4d058 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/rfi001.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc new file mode 100644 index 00000000000..36a65b7453a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi001.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..30883ee3276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi002.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_POWER_ALL/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_ALL/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_ALL/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_ALL/test.desc new file mode 100644 index 00000000000..4a353f2e4fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +rfi002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPC/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPC/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPC/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPC/test.desc new file mode 100644 index 00000000000..9f8f1fb30ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc new file mode 100644 index 00000000000..c3d3e0d1814 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_PSO_ALL/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_ALL/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_ALL/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_ALL/test.desc new file mode 100644 index 00000000000..099732df42c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPC/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPC/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPC/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPC/test.desc new file mode 100644 index 00000000000..7ba24dcd0b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc new file mode 100644 index 00000000000..7fc6c0abd2f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_RMO_ALL/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_ALL/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_ALL/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_ALL/test.desc new file mode 100644 index 00000000000..8cfa5ae1c21 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +rfi002.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPC/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPC/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPC/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPC/test.desc new file mode 100644 index 00000000000..11400db5db6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc new file mode 100644 index 00000000000..926d711137c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/test.desc new file mode 100644 index 00000000000..10067349749 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_TSO_ALL/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_ALL/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_ALL/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_ALL/test.desc new file mode 100644 index 00000000000..c817c8a29d5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPC/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPC/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPC/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPC/test.desc new file mode 100644 index 00000000000..48b3423eafe --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/rfi002.c b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/rfi002.c new file mode 100644 index 00000000000..dc5bff3fc99 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/rfi002.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc new file mode 100644 index 00000000000..26156cba6bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..86f096f22b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi003.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_POWER_ALL/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_ALL/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_ALL/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_ALL/test.desc new file mode 100644 index 00000000000..2ea35a2c315 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi003.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPC/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPC/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPC/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPC/test.desc new file mode 100644 index 00000000000..214809a05d7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi003.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc new file mode 100644 index 00000000000..52aecda1bca --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi003.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_PSO_ALL/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_ALL/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_ALL/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_ALL/test.desc new file mode 100644 index 00000000000..4bd7d1715dc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi003.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPC/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPC/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPC/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPC/test.desc new file mode 100644 index 00000000000..48cffd24705 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi003.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc new file mode 100644 index 00000000000..88627d228de --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi003.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_RMO_ALL/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_ALL/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_ALL/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_ALL/test.desc new file mode 100644 index 00000000000..9211d64d4fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi003.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPC/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPC/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPC/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPC/test.desc new file mode 100644 index 00000000000..3fc49306f53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi003.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc new file mode 100644 index 00000000000..c01e3351e4a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi003.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/test.desc new file mode 100644 index 00000000000..5b4a48d00cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_TSO_ALL/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_ALL/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_ALL/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_ALL/test.desc new file mode 100644 index 00000000000..e6e654bbfaa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi003.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPC/rfi003.c b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPC/rfi003.c new file mode 100644 index 00000000000..fe9332fe13e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPC/rfi003.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 1), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPC/test.desc new file mode 100644 index 00000000000..31396e295fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi003.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..60542149352 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi004.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_POWER_ALL/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_ALL/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_ALL/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_ALL/test.desc new file mode 100644 index 00000000000..aa67fcdb51c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPC/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPC/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPC/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPC/test.desc new file mode 100644 index 00000000000..9a2c2072116 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc new file mode 100644 index 00000000000..dfacc9a2347 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_PSO_ALL/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_ALL/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_ALL/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_ALL/test.desc new file mode 100644 index 00000000000..b20dc6cab1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPC/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPC/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPC/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPC/test.desc new file mode 100644 index 00000000000..427e33d5ea6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc new file mode 100644 index 00000000000..454844a4fa6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_RMO_ALL/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_ALL/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_ALL/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_ALL/test.desc new file mode 100644 index 00000000000..27e8f57e1f1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPC/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPC/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPC/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPC/test.desc new file mode 100644 index 00000000000..daf76e1758a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc new file mode 100644 index 00000000000..4ae24bc10c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/test.desc new file mode 100644 index 00000000000..a258f47bef4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi004.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_TSO_ALL/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_ALL/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_ALL/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_ALL/test.desc new file mode 100644 index 00000000000..a37642ddcb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPC/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPC/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPC/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPC/test.desc new file mode 100644 index 00000000000..9555c2c24af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/rfi004.c b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/rfi004.c new file mode 100644 index 00000000000..e5f74156139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/rfi004.c @@ -0,0 +1,57 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + z = 1; + __unbuffered_p1_EAX = z; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc new file mode 100644 index 00000000000..ca0ccc0d24f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi004.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..f754e68ce30 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi005.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_POWER_ALL/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_ALL/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_ALL/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_ALL/test.desc new file mode 100644 index 00000000000..fb10625cc1f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPC/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPC/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPC/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPC/test.desc new file mode 100644 index 00000000000..65d92cec24b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc new file mode 100644 index 00000000000..062da7c611d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_PSO_ALL/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_ALL/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_ALL/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_ALL/test.desc new file mode 100644 index 00000000000..3b59216a7e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPC/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPC/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPC/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPC/test.desc new file mode 100644 index 00000000000..0e40476fda5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc new file mode 100644 index 00000000000..13b52ab7186 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_RMO_ALL/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_ALL/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_ALL/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_ALL/test.desc new file mode 100644 index 00000000000..320fcb34efa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPC/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPC/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPC/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPC/test.desc new file mode 100644 index 00000000000..cfc3089f42b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc new file mode 100644 index 00000000000..bb720f900f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/test.desc new file mode 100644 index 00000000000..d5813c8dca8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi005.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_TSO_ALL/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_ALL/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_ALL/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_ALL/test.desc new file mode 100644 index 00000000000..2ce00e970ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPC/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPC/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPC/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPC/test.desc new file mode 100644 index 00000000000..ffe646dc2b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/rfi005.c b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/rfi005.c new file mode 100644 index 00000000000..a19653bc7b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/rfi005.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc new file mode 100644 index 00000000000..788ed0b0f25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi005.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..fbec6bc3847 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi006.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_POWER_ALL/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_ALL/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_ALL/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_ALL/test.desc new file mode 100644 index 00000000000..36aa9d30410 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi006.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPC/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPC/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPC/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPC/test.desc new file mode 100644 index 00000000000..0ad8f037137 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi006.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc new file mode 100644 index 00000000000..cfe5662c5d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi006.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_PSO_ALL/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_ALL/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_ALL/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_ALL/test.desc new file mode 100644 index 00000000000..598389e462e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi006.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPC/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPC/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPC/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPC/test.desc new file mode 100644 index 00000000000..b7f40d1aea0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi006.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc new file mode 100644 index 00000000000..31c769ea89b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi006.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_RMO_ALL/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_ALL/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_ALL/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_ALL/test.desc new file mode 100644 index 00000000000..2ee8450906f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +rfi006.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPC/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPC/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPC/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPC/test.desc new file mode 100644 index 00000000000..7d8b76a31c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi006.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc new file mode 100644 index 00000000000..8b34c60409a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi006.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/test.desc new file mode 100644 index 00000000000..fafa684d34d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi006.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_TSO_ALL/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_ALL/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_ALL/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_ALL/test.desc new file mode 100644 index 00000000000..ab158d88126 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi006.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPC/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPC/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPC/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPC/test.desc new file mode 100644 index 00000000000..d4dfcefc31c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi006.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/rfi006.c b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/rfi006.c new file mode 100644 index 00000000000..f1a682a1756 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/rfi006.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 2 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc new file mode 100644 index 00000000000..dea19fd6de2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi006.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..65d0eb337e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi007.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_POWER_ALL/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_ALL/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_ALL/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_ALL/test.desc new file mode 100644 index 00000000000..1c180c975a0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPC/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPC/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPC/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPC/test.desc new file mode 100644 index 00000000000..88cd9b2d22a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc new file mode 100644 index 00000000000..36aa382ad27 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_PSO_ALL/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_ALL/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_ALL/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_ALL/test.desc new file mode 100644 index 00000000000..8220a207768 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPC/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPC/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPC/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPC/test.desc new file mode 100644 index 00000000000..b0c3aea3c75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc new file mode 100644 index 00000000000..98281b67e05 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_RMO_ALL/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_ALL/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_ALL/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_ALL/test.desc new file mode 100644 index 00000000000..fef52418af6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPC/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPC/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPC/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPC/test.desc new file mode 100644 index 00000000000..1fd08726415 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc new file mode 100644 index 00000000000..a7249c6f906 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/test.desc new file mode 100644 index 00000000000..ab4c6ddbe47 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi007.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_TSO_ALL/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_ALL/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_ALL/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_ALL/test.desc new file mode 100644 index 00000000000..140ca568b91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPC/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPC/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPC/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPC/test.desc new file mode 100644 index 00000000000..70938c64131 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/rfi007.c b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/rfi007.c new file mode 100644 index 00000000000..f6bfacef4d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/rfi007.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 2 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc new file mode 100644 index 00000000000..8d5b66e927a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi007.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1529f165e2b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi008.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_POWER_ALL/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_ALL/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_ALL/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_ALL/test.desc new file mode 100644 index 00000000000..6d5512ed07f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPC/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPC/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPC/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPC/test.desc new file mode 100644 index 00000000000..547cb99f948 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc new file mode 100644 index 00000000000..a02564044e6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_PSO_ALL/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_ALL/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_ALL/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_ALL/test.desc new file mode 100644 index 00000000000..d1a3a445b81 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPC/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPC/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPC/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPC/test.desc new file mode 100644 index 00000000000..e13ada07138 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc new file mode 100644 index 00000000000..880b0adb84d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_RMO_ALL/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_ALL/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_ALL/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_ALL/test.desc new file mode 100644 index 00000000000..f938c66447a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPC/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPC/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPC/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPC/test.desc new file mode 100644 index 00000000000..15cb548a15a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc new file mode 100644 index 00000000000..0e177f3d7ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/test.desc new file mode 100644 index 00000000000..eaea3e47d38 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi008.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_TSO_ALL/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_ALL/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_ALL/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_ALL/test.desc new file mode 100644 index 00000000000..0c958a4661a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPC/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPC/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPC/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPC/test.desc new file mode 100644 index 00000000000..eed95e8d340 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/rfi008.c b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/rfi008.c new file mode 100644 index 00000000000..4648abe37cb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/rfi008.c @@ -0,0 +1,56 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc new file mode 100644 index 00000000000..30f98854395 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi008.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..c537ac25d22 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi009.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_POWER_ALL/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_ALL/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_ALL/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_ALL/test.desc new file mode 100644 index 00000000000..f6a0bb597f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPC/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPC/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPC/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPC/test.desc new file mode 100644 index 00000000000..e4cfa3d8ce7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc new file mode 100644 index 00000000000..9c6b21307f9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_PSO_ALL/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_ALL/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_ALL/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_ALL/test.desc new file mode 100644 index 00000000000..b63cf2422bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPC/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPC/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPC/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPC/test.desc new file mode 100644 index 00000000000..afda68e7b41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc new file mode 100644 index 00000000000..fc9e1981ba9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_RMO_ALL/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_ALL/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_ALL/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_ALL/test.desc new file mode 100644 index 00000000000..f3a67b94e31 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPC/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPC/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPC/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPC/test.desc new file mode 100644 index 00000000000..fbeada3b79a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc new file mode 100644 index 00000000000..dbdbb55e02c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/test.desc new file mode 100644 index 00000000000..e96120b0851 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi009.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_TSO_ALL/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_ALL/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_ALL/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_ALL/test.desc new file mode 100644 index 00000000000..2c931df0bf6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPC/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPC/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPC/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPC/test.desc new file mode 100644 index 00000000000..5c63cdb4eda --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/rfi009.c b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/rfi009.c new file mode 100644 index 00000000000..8f2a65184c8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/rfi009.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = x; + __unbuffered_p0_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc new file mode 100644 index 00000000000..53e4734d6dc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi009.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..3f1f13bd106 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi010.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_POWER_ALL/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_ALL/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_ALL/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_ALL/test.desc new file mode 100644 index 00000000000..0407e4f4a32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPC/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPC/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPC/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPC/test.desc new file mode 100644 index 00000000000..7141753deb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc new file mode 100644 index 00000000000..a06997a1e43 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_PSO_ALL/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_ALL/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_ALL/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_ALL/test.desc new file mode 100644 index 00000000000..c1564a2a2b2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPC/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPC/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPC/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPC/test.desc new file mode 100644 index 00000000000..a49ceb13d07 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc new file mode 100644 index 00000000000..66f87559be7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_RMO_ALL/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_ALL/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_ALL/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_ALL/test.desc new file mode 100644 index 00000000000..87afcec9480 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPC/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPC/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPC/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPC/test.desc new file mode 100644 index 00000000000..1e6280546a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc new file mode 100644 index 00000000000..c39db44f073 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/test.desc new file mode 100644 index 00000000000..0ea8cf39cee --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +rfi010.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_TSO_ALL/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_ALL/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_ALL/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_ALL/test.desc new file mode 100644 index 00000000000..10abfc30e96 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +TSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPC/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPC/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPC/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPC/test.desc new file mode 100644 index 00000000000..4a397d40635 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +TSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/rfi010.c b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/rfi010.c new file mode 100644 index 00000000000..399a31de199 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/rfi010.c @@ -0,0 +1,55 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + x = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 1; + __unbuffered_p1_EAX = y; + __unbuffered_p1_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1 && + __unbuffered_p1_EBX == 0), + "Program proven to be relaxed for X86, model checker says YES."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc new file mode 100644 index 00000000000..2244e1dc635 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +rfi010.c +TSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..fdb0bead5b3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe000.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_POWER_ALL/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_POWER_ALL/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_POWER_ALL/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_POWER_ALL/test.desc new file mode 100644 index 00000000000..5e39c72846c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPC/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPC/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPC/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPC/test.desc new file mode 100644 index 00000000000..978fc6eaa75 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc new file mode 100644 index 00000000000..8bcd352c34f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_PSO_ALL/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_PSO_ALL/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_PSO_ALL/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_PSO_ALL/test.desc new file mode 100644 index 00000000000..d425842f63d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPC/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPC/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPC/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPC/test.desc new file mode 100644 index 00000000000..740a93b35fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc new file mode 100644 index 00000000000..059e0b72889 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_RMO_ALL/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_RMO_ALL/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_RMO_ALL/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_RMO_ALL/test.desc new file mode 100644 index 00000000000..f56e5b42e25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPC/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPC/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPC/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPC/test.desc new file mode 100644 index 00000000000..79ffb695c1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc new file mode 100644 index 00000000000..74d96fd9831 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/test.desc new file mode 100644 index 00000000000..f810c0e5f1c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_TSO_ALL/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_TSO_ALL/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_TSO_ALL/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_TSO_ALL/test.desc new file mode 100644 index 00000000000..1f392bc20dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPC/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPC/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPC/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPC/test.desc new file mode 100644 index 00000000000..381fb6e6ff1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/safe000.c b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/safe000.c new file mode 100644 index 00000000000..3772b2e83af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/safe000.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc new file mode 100644 index 00000000000..d4b3b3c5c80 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..2dd1498d062 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe001.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_POWER_ALL/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_POWER_ALL/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_POWER_ALL/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_POWER_ALL/test.desc new file mode 100644 index 00000000000..1923c905842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPC/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPC/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPC/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPC/test.desc new file mode 100644 index 00000000000..d0fc35b69ce --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc new file mode 100644 index 00000000000..ba214e9ac68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_PSO_ALL/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_PSO_ALL/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_PSO_ALL/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_PSO_ALL/test.desc new file mode 100644 index 00000000000..d185ff3f61f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPC/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPC/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPC/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPC/test.desc new file mode 100644 index 00000000000..da582670cf5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc new file mode 100644 index 00000000000..c06ec83515e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_RMO_ALL/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_RMO_ALL/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_RMO_ALL/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_RMO_ALL/test.desc new file mode 100644 index 00000000000..c7c2f41562a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPC/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPC/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPC/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPC/test.desc new file mode 100644 index 00000000000..37697b7c053 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc new file mode 100644 index 00000000000..d2230bca1e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/test.desc new file mode 100644 index 00000000000..820bf8c6528 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_TSO_ALL/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_TSO_ALL/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_TSO_ALL/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_TSO_ALL/test.desc new file mode 100644 index 00000000000..a1c5513238a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPC/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPC/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPC/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPC/test.desc new file mode 100644 index 00000000000..74ff0246456 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/safe001.c b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/safe001.c new file mode 100644 index 00000000000..53e8729d818 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/safe001.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc new file mode 100644 index 00000000000..252a39674e6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1da159462ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe002.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_POWER_ALL/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_POWER_ALL/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_POWER_ALL/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_POWER_ALL/test.desc new file mode 100644 index 00000000000..061aceec79e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPC/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPC/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPC/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPC/test.desc new file mode 100644 index 00000000000..546d92a71b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc new file mode 100644 index 00000000000..24ce9c328a2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_PSO_ALL/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_PSO_ALL/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_PSO_ALL/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_PSO_ALL/test.desc new file mode 100644 index 00000000000..1d5afaf864e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPC/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPC/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPC/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPC/test.desc new file mode 100644 index 00000000000..5b1e8ceb9ff --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc new file mode 100644 index 00000000000..3d5d726f134 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_RMO_ALL/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_RMO_ALL/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_RMO_ALL/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_RMO_ALL/test.desc new file mode 100644 index 00000000000..832e09f6801 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPC/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPC/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPC/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPC/test.desc new file mode 100644 index 00000000000..42c1979165c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc new file mode 100644 index 00000000000..93699f936a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/test.desc new file mode 100644 index 00000000000..f1a0ecd41fb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_TSO_ALL/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_TSO_ALL/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_TSO_ALL/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_TSO_ALL/test.desc new file mode 100644 index 00000000000..3995a8be134 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPC/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPC/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPC/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPC/test.desc new file mode 100644 index 00000000000..7903502fad4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/safe002.c b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/safe002.c new file mode 100644 index 00000000000..a2aadd8b169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/safe002.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc new file mode 100644 index 00000000000..6a1ef6208b7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e67ac27832c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe003.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_POWER_ALL/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_POWER_ALL/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_POWER_ALL/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_POWER_ALL/test.desc new file mode 100644 index 00000000000..fcc3822c635 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPC/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPC/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPC/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPC/test.desc new file mode 100644 index 00000000000..76b44322674 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc new file mode 100644 index 00000000000..771af6fa2f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_PSO_ALL/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_PSO_ALL/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_PSO_ALL/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_PSO_ALL/test.desc new file mode 100644 index 00000000000..85b1ab80207 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPC/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPC/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPC/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPC/test.desc new file mode 100644 index 00000000000..8af95a0706b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc new file mode 100644 index 00000000000..8cbf5e66aa6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_RMO_ALL/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_RMO_ALL/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_RMO_ALL/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_RMO_ALL/test.desc new file mode 100644 index 00000000000..b999981fafc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe003.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPC/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPC/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPC/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPC/test.desc new file mode 100644 index 00000000000..a7c9b27cf94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc new file mode 100644 index 00000000000..13ec3658de3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/test.desc new file mode 100644 index 00000000000..b68d8fdc763 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe003.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_TSO_ALL/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_TSO_ALL/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_TSO_ALL/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_TSO_ALL/test.desc new file mode 100644 index 00000000000..c2852aa117f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPC/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPC/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPC/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPC/test.desc new file mode 100644 index 00000000000..6035587c3e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/safe003.c b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/safe003.c new file mode 100644 index 00000000000..1a8362250dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/safe003.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc new file mode 100644 index 00000000000..4a2201f85f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe003.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..9f3a4b085db --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe004.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_POWER_ALL/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_POWER_ALL/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_POWER_ALL/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_POWER_ALL/test.desc new file mode 100644 index 00000000000..03cfd8bac42 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPC/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPC/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPC/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPC/test.desc new file mode 100644 index 00000000000..ba67cf3f6ae --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc new file mode 100644 index 00000000000..41aac7ce805 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_PSO_ALL/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_PSO_ALL/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_PSO_ALL/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_PSO_ALL/test.desc new file mode 100644 index 00000000000..d5f9635b691 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPC/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPC/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPC/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPC/test.desc new file mode 100644 index 00000000000..083366841c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc new file mode 100644 index 00000000000..10c8b01223e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_RMO_ALL/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_RMO_ALL/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_RMO_ALL/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_RMO_ALL/test.desc new file mode 100644 index 00000000000..38c26c34803 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPC/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPC/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPC/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPC/test.desc new file mode 100644 index 00000000000..77447d31eb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc new file mode 100644 index 00000000000..b5c354947d1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/test.desc new file mode 100644 index 00000000000..b55046755f5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe004.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_TSO_ALL/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_TSO_ALL/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_TSO_ALL/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_TSO_ALL/test.desc new file mode 100644 index 00000000000..18264c60b31 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPC/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPC/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPC/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPC/test.desc new file mode 100644 index 00000000000..1cee8628380 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/safe004.c b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/safe004.c new file mode 100644 index 00000000000..1ac0021dcc6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/safe004.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc new file mode 100644 index 00000000000..aedb08726ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe004.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..db761e5a7b5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe005.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_POWER_ALL/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_POWER_ALL/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_POWER_ALL/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_POWER_ALL/test.desc new file mode 100644 index 00000000000..56f63ce71c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe005.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPC/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPC/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPC/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPC/test.desc new file mode 100644 index 00000000000..bbb2a4baa90 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc new file mode 100644 index 00000000000..cafd9e7f333 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_PSO_ALL/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_PSO_ALL/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_PSO_ALL/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_PSO_ALL/test.desc new file mode 100644 index 00000000000..7a3c1be86df --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPC/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPC/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPC/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPC/test.desc new file mode 100644 index 00000000000..d5dc4b095b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc new file mode 100644 index 00000000000..fdc1e51ddce --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_RMO_ALL/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_RMO_ALL/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_RMO_ALL/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_RMO_ALL/test.desc new file mode 100644 index 00000000000..c457f14b6db --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPC/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPC/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPC/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPC/test.desc new file mode 100644 index 00000000000..54596e6ade7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc new file mode 100644 index 00000000000..4da00b4b857 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/test.desc new file mode 100644 index 00000000000..00b6ed2175d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe005.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_TSO_ALL/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_TSO_ALL/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_TSO_ALL/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_TSO_ALL/test.desc new file mode 100644 index 00000000000..dcb5104ad55 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPC/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPC/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPC/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPC/test.desc new file mode 100644 index 00000000000..ba7c2c92276 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/safe005.c b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/safe005.c new file mode 100644 index 00000000000..8a1131ed774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/safe005.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc new file mode 100644 index 00000000000..2834168bbe0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe005.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..6414baa8632 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe006.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_POWER_ALL/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_POWER_ALL/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_POWER_ALL/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_POWER_ALL/test.desc new file mode 100644 index 00000000000..8be9bff8fac --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPC/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPC/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPC/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPC/test.desc new file mode 100644 index 00000000000..a161801743b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc new file mode 100644 index 00000000000..94e331b0e8a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_PSO_ALL/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_PSO_ALL/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_PSO_ALL/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_PSO_ALL/test.desc new file mode 100644 index 00000000000..936907e3396 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPC/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPC/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPC/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPC/test.desc new file mode 100644 index 00000000000..254519c665b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc new file mode 100644 index 00000000000..db3e7a73e68 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_RMO_ALL/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_RMO_ALL/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_RMO_ALL/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_RMO_ALL/test.desc new file mode 100644 index 00000000000..2397a26c114 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPC/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPC/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPC/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPC/test.desc new file mode 100644 index 00000000000..5789026f2ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc new file mode 100644 index 00000000000..384cf0e6937 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/test.desc new file mode 100644 index 00000000000..03907b13ada --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe006.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_TSO_ALL/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_TSO_ALL/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_TSO_ALL/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_TSO_ALL/test.desc new file mode 100644 index 00000000000..bbacf66a898 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPC/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPC/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPC/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPC/test.desc new file mode 100644 index 00000000000..7935b056c3c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/safe006.c b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/safe006.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/safe006.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc new file mode 100644 index 00000000000..016ba50e925 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe006.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..940d6f9a150 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe007.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_POWER_ALL/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_POWER_ALL/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_POWER_ALL/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_POWER_ALL/test.desc new file mode 100644 index 00000000000..fd5b0e7fd52 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPC/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPC/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPC/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPC/test.desc new file mode 100644 index 00000000000..180c63eb259 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc new file mode 100644 index 00000000000..44744dd78a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_PSO_ALL/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_PSO_ALL/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_PSO_ALL/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_PSO_ALL/test.desc new file mode 100644 index 00000000000..936757099ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPC/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPC/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPC/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPC/test.desc new file mode 100644 index 00000000000..8f6972156cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc new file mode 100644 index 00000000000..7ab14277274 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_RMO_ALL/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_RMO_ALL/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_RMO_ALL/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_RMO_ALL/test.desc new file mode 100644 index 00000000000..1bbf0b0aa29 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPC/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPC/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPC/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPC/test.desc new file mode 100644 index 00000000000..d84cedec75f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc new file mode 100644 index 00000000000..c31a19b4814 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/test.desc new file mode 100644 index 00000000000..b3d1cfc7c26 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe007.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_TSO_ALL/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_TSO_ALL/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_TSO_ALL/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_TSO_ALL/test.desc new file mode 100644 index 00000000000..74bdb95c852 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPC/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPC/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPC/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPC/test.desc new file mode 100644 index 00000000000..bea1320947b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/safe007.c b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/safe007.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/safe007.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc new file mode 100644 index 00000000000..572b8b66c77 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe007.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..36b5fca0b53 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe008.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_POWER_ALL/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_POWER_ALL/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_POWER_ALL/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_POWER_ALL/test.desc new file mode 100644 index 00000000000..0b91391a888 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPC/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPC/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPC/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPC/test.desc new file mode 100644 index 00000000000..647a957f171 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc new file mode 100644 index 00000000000..dda1a403d61 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_PSO_ALL/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_PSO_ALL/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_PSO_ALL/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_PSO_ALL/test.desc new file mode 100644 index 00000000000..d402c5bebe1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPC/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPC/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPC/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPC/test.desc new file mode 100644 index 00000000000..127546725a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc new file mode 100644 index 00000000000..4a087dfa139 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_RMO_ALL/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_RMO_ALL/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_RMO_ALL/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_RMO_ALL/test.desc new file mode 100644 index 00000000000..5477f093687 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPC/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPC/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPC/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPC/test.desc new file mode 100644 index 00000000000..84dabcb524d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc new file mode 100644 index 00000000000..39d19005396 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/test.desc new file mode 100644 index 00000000000..2c439125145 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe008.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/test.desc new file mode 100644 index 00000000000..beabc236e9b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/test.desc new file mode 100644 index 00000000000..11b8bc5c64c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/safe008.c b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/safe008.c new file mode 100644 index 00000000000..763a8198043 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/safe008.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p1_EAX == 1 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc new file mode 100644 index 00000000000..3efef04b349 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe008.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..6a7a492863c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe009.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_POWER_ALL/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_POWER_ALL/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_POWER_ALL/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_POWER_ALL/test.desc new file mode 100644 index 00000000000..6a97e728b91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPC/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPC/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPC/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPC/test.desc new file mode 100644 index 00000000000..09208c256a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc new file mode 100644 index 00000000000..9d2d63cb5c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_PSO_ALL/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_PSO_ALL/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_PSO_ALL/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_PSO_ALL/test.desc new file mode 100644 index 00000000000..6ad04f65020 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPC/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPC/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPC/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPC/test.desc new file mode 100644 index 00000000000..d02a3eea5df --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc new file mode 100644 index 00000000000..c1d5f6be8d7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_RMO_ALL/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_RMO_ALL/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_RMO_ALL/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_RMO_ALL/test.desc new file mode 100644 index 00000000000..755638360e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPC/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPC/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPC/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPC/test.desc new file mode 100644 index 00000000000..39da592b994 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc new file mode 100644 index 00000000000..88db33ecba0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/test.desc new file mode 100644 index 00000000000..e3304d288c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe009.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_TSO_ALL/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_TSO_ALL/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_TSO_ALL/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_TSO_ALL/test.desc new file mode 100644 index 00000000000..9e9f4538aac --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPC/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPC/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPC/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPC/test.desc new file mode 100644 index 00000000000..259d8f88466 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/safe009.c b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/safe009.c new file mode 100644 index 00000000000..c3ecc77fdd3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/safe009.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc new file mode 100644 index 00000000000..ee23e17f422 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe009.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..96ed8bede9a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe010.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_POWER_ALL/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_POWER_ALL/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_POWER_ALL/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_POWER_ALL/test.desc new file mode 100644 index 00000000000..14f97e6e0ac --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPC/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPC/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPC/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPC/test.desc new file mode 100644 index 00000000000..5826a3b37be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc new file mode 100644 index 00000000000..be31f3fa647 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_PSO_ALL/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_PSO_ALL/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_PSO_ALL/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_PSO_ALL/test.desc new file mode 100644 index 00000000000..d73a4f24409 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPC/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPC/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPC/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPC/test.desc new file mode 100644 index 00000000000..8d2a3816324 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc new file mode 100644 index 00000000000..db2dd5dd238 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_RMO_ALL/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_RMO_ALL/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_RMO_ALL/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_RMO_ALL/test.desc new file mode 100644 index 00000000000..58da3bc7b6b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPC/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPC/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPC/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPC/test.desc new file mode 100644 index 00000000000..4e495fa7ffb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc new file mode 100644 index 00000000000..ef7e44f33c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/test.desc new file mode 100644 index 00000000000..9fe489331fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe010.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/test.desc new file mode 100644 index 00000000000..cdc4cc32e9e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/test.desc new file mode 100644 index 00000000000..65a46c66b0f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/safe010.c b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/safe010.c new file mode 100644 index 00000000000..695616c40e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/safe010.c @@ -0,0 +1,51 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc new file mode 100644 index 00000000000..b6f55eac688 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe010.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..1f42a50e608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe011.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_POWER_ALL/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_POWER_ALL/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_POWER_ALL/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_POWER_ALL/test.desc new file mode 100644 index 00000000000..8bc5131d5df --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPC/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPC/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPC/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPC/test.desc new file mode 100644 index 00000000000..771004f92ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc new file mode 100644 index 00000000000..fe6b0425c91 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_PSO_ALL/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_PSO_ALL/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_PSO_ALL/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_PSO_ALL/test.desc new file mode 100644 index 00000000000..4c2e3fc953c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPC/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPC/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPC/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPC/test.desc new file mode 100644 index 00000000000..24db771a629 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc new file mode 100644 index 00000000000..63406f71507 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_RMO_ALL/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_RMO_ALL/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_RMO_ALL/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_RMO_ALL/test.desc new file mode 100644 index 00000000000..ba1fb5dd16b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPC/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPC/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPC/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPC/test.desc new file mode 100644 index 00000000000..0adc6da165b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc new file mode 100644 index 00000000000..395e4f52676 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/test.desc new file mode 100644 index 00000000000..66c082a7399 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe011.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/test.desc new file mode 100644 index 00000000000..7d65fe43297 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/test.desc new file mode 100644 index 00000000000..2f81a3802ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/safe011.c b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/safe011.c new file mode 100644 index 00000000000..7a26f84bed3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/safe011.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && z == 2 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc new file mode 100644 index 00000000000..948aeb35339 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe011.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..c2ffcd00318 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe012.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_POWER_ALL/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_POWER_ALL/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_POWER_ALL/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_POWER_ALL/test.desc new file mode 100644 index 00000000000..422b893ce7a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPC/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPC/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPC/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPC/test.desc new file mode 100644 index 00000000000..774f514dd7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc new file mode 100644 index 00000000000..aac4fc81d60 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_PSO_ALL/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_PSO_ALL/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_PSO_ALL/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_PSO_ALL/test.desc new file mode 100644 index 00000000000..5220a98c925 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPC/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPC/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPC/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPC/test.desc new file mode 100644 index 00000000000..c59a3e071ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc new file mode 100644 index 00000000000..4b84ca1a32e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_RMO_ALL/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_RMO_ALL/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_RMO_ALL/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_RMO_ALL/test.desc new file mode 100644 index 00000000000..a89404cdf5c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPC/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPC/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPC/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPC/test.desc new file mode 100644 index 00000000000..494f253c361 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc new file mode 100644 index 00000000000..dc0d80eeba7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/test.desc new file mode 100644 index 00000000000..0e195323566 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe012.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_TSO_ALL/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_TSO_ALL/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_TSO_ALL/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_TSO_ALL/test.desc new file mode 100644 index 00000000000..e39d0976aa2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPC/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPC/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPC/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPC/test.desc new file mode 100644 index 00000000000..66bd7fa923b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/safe012.c b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/safe012.c new file mode 100644 index 00000000000..19bfabddf4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/safe012.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc new file mode 100644 index 00000000000..cee4b1d5569 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe012.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..d0ae4c0ea04 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe013.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_POWER_ALL/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_POWER_ALL/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_POWER_ALL/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_POWER_ALL/test.desc new file mode 100644 index 00000000000..ade8a85803d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPC/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPC/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPC/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPC/test.desc new file mode 100644 index 00000000000..7f9656439b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc new file mode 100644 index 00000000000..5f9d5ebd538 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_PSO_ALL/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_PSO_ALL/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_PSO_ALL/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_PSO_ALL/test.desc new file mode 100644 index 00000000000..ac2360cd006 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPC/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPC/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPC/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPC/test.desc new file mode 100644 index 00000000000..b8212cf73d9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc new file mode 100644 index 00000000000..0a32b22fc9f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_RMO_ALL/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_RMO_ALL/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_RMO_ALL/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_RMO_ALL/test.desc new file mode 100644 index 00000000000..dd5ef691b4a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPC/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPC/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPC/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPC/test.desc new file mode 100644 index 00000000000..e3bfcf80a0d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc new file mode 100644 index 00000000000..d7a903201ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/test.desc new file mode 100644 index 00000000000..a4db7398af5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe013.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/test.desc new file mode 100644 index 00000000000..2d42d0de892 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/test.desc new file mode 100644 index 00000000000..f108af163bc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/safe013.c b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/safe013.c new file mode 100644 index 00000000000..bbec4ff54e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/safe013.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc new file mode 100644 index 00000000000..22e2a70f6a3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe013.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..04f67d8705d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe014.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_POWER_ALL/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_POWER_ALL/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_POWER_ALL/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_POWER_ALL/test.desc new file mode 100644 index 00000000000..fbed7cbd2ad --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPC/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPC/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPC/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPC/test.desc new file mode 100644 index 00000000000..9f53002dbcd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc new file mode 100644 index 00000000000..698aa33ac98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_PSO_ALL/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_PSO_ALL/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_PSO_ALL/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_PSO_ALL/test.desc new file mode 100644 index 00000000000..9f680c9e76d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPC/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPC/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPC/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPC/test.desc new file mode 100644 index 00000000000..be51f111783 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc new file mode 100644 index 00000000000..4f8d40a60a1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_RMO_ALL/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_RMO_ALL/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_RMO_ALL/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_RMO_ALL/test.desc new file mode 100644 index 00000000000..4ef63a37b2f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPC/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPC/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPC/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPC/test.desc new file mode 100644 index 00000000000..6e07dfc0642 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc new file mode 100644 index 00000000000..85329df89ee --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/test.desc new file mode 100644 index 00000000000..0f036bda206 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe014.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_TSO_ALL/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_TSO_ALL/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_TSO_ALL/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_TSO_ALL/test.desc new file mode 100644 index 00000000000..958d97d53d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPC/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPC/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPC/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPC/test.desc new file mode 100644 index 00000000000..7dcdfa0d572 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/safe014.c b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/safe014.c new file mode 100644 index 00000000000..d489b9f0b1b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/safe014.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc new file mode 100644 index 00000000000..3eea17d25c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe014.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..ebcd28a325f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe015.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_POWER_ALL/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_POWER_ALL/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_POWER_ALL/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_POWER_ALL/test.desc new file mode 100644 index 00000000000..fac2baf3e86 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPC/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPC/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPC/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPC/test.desc new file mode 100644 index 00000000000..6975f146e63 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc new file mode 100644 index 00000000000..56b08252db4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_PSO_ALL/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_PSO_ALL/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_PSO_ALL/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_PSO_ALL/test.desc new file mode 100644 index 00000000000..fab66b04aca --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPC/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPC/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPC/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPC/test.desc new file mode 100644 index 00000000000..2fcc9a43c48 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc new file mode 100644 index 00000000000..40dfa9fb029 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_RMO_ALL/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_RMO_ALL/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_RMO_ALL/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_RMO_ALL/test.desc new file mode 100644 index 00000000000..21436b24a41 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPC/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPC/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPC/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPC/test.desc new file mode 100644 index 00000000000..6e0882b7324 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc new file mode 100644 index 00000000000..5e173f66e04 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/test.desc new file mode 100644 index 00000000000..a85dea384e5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe015.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_TSO_ALL/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_TSO_ALL/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_TSO_ALL/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_TSO_ALL/test.desc new file mode 100644 index 00000000000..255453965be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPC/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPC/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPC/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPC/test.desc new file mode 100644 index 00000000000..ff0e75c9fee --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/safe015.c b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/safe015.c new file mode 100644 index 00000000000..e8f9d3434c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/safe015.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc new file mode 100644 index 00000000000..0f897bb6314 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe015.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..4139ffa7b34 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe016.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_POWER_ALL/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_POWER_ALL/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_POWER_ALL/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_POWER_ALL/test.desc new file mode 100644 index 00000000000..6c72fd7d0db --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPC/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPC/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPC/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPC/test.desc new file mode 100644 index 00000000000..0daf23c012b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc new file mode 100644 index 00000000000..387a8167e45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_PSO_ALL/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_PSO_ALL/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_PSO_ALL/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_PSO_ALL/test.desc new file mode 100644 index 00000000000..dd5ffaac848 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPC/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPC/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPC/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPC/test.desc new file mode 100644 index 00000000000..7d271dac287 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc new file mode 100644 index 00000000000..de0230863eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_RMO_ALL/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_RMO_ALL/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_RMO_ALL/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_RMO_ALL/test.desc new file mode 100644 index 00000000000..159d6d3e220 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPC/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPC/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPC/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPC/test.desc new file mode 100644 index 00000000000..a1923c1e986 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc new file mode 100644 index 00000000000..0d9d954a00c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/test.desc new file mode 100644 index 00000000000..ea76e09a5b9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe016.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_TSO_ALL/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_TSO_ALL/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_TSO_ALL/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_TSO_ALL/test.desc new file mode 100644 index 00000000000..0eab719c206 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPC/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPC/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPC/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPC/test.desc new file mode 100644 index 00000000000..6612b688803 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/safe016.c b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/safe016.c new file mode 100644 index 00000000000..6a22c9769e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/safe016.c @@ -0,0 +1,72 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc new file mode 100644 index 00000000000..ef01fa87357 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe016.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..b4623335313 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe017.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_POWER_ALL/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_POWER_ALL/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_POWER_ALL/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_POWER_ALL/test.desc new file mode 100644 index 00000000000..0799d6016ca --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPC/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPC/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPC/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPC/test.desc new file mode 100644 index 00000000000..376c23923bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc new file mode 100644 index 00000000000..580be638dd4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_PSO_ALL/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_PSO_ALL/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_PSO_ALL/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_PSO_ALL/test.desc new file mode 100644 index 00000000000..20070ccdeee --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPC/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPC/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPC/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPC/test.desc new file mode 100644 index 00000000000..2dcc77a1064 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc new file mode 100644 index 00000000000..475f8c58608 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_RMO_ALL/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_RMO_ALL/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_RMO_ALL/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_RMO_ALL/test.desc new file mode 100644 index 00000000000..ca9cf31a834 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPC/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPC/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPC/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPC/test.desc new file mode 100644 index 00000000000..71e2dafbfb7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc new file mode 100644 index 00000000000..f35ea2032a0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/test.desc new file mode 100644 index 00000000000..df0f25628d6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe017.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/test.desc new file mode 100644 index 00000000000..886f4a4160a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/test.desc new file mode 100644 index 00000000000..2ba2cca1b67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/safe017.c b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/safe017.c new file mode 100644 index 00000000000..fa0e8c63457 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/safe017.c @@ -0,0 +1,61 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p2_EAX == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc new file mode 100644 index 00000000000..a67e27f1606 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe017.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..78b850749e5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe018.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_POWER_ALL/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_POWER_ALL/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_POWER_ALL/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_POWER_ALL/test.desc new file mode 100644 index 00000000000..556bc7a86cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPC/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPC/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPC/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPC/test.desc new file mode 100644 index 00000000000..91ccfcad734 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc new file mode 100644 index 00000000000..dcef8eda3f2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_PSO_ALL/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_PSO_ALL/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_PSO_ALL/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_PSO_ALL/test.desc new file mode 100644 index 00000000000..e4b883d28e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPC/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPC/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPC/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPC/test.desc new file mode 100644 index 00000000000..3dc627399b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc new file mode 100644 index 00000000000..ab2ff3497f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_RMO_ALL/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_RMO_ALL/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_RMO_ALL/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_RMO_ALL/test.desc new file mode 100644 index 00000000000..89afabc61ae --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPC/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPC/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPC/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPC/test.desc new file mode 100644 index 00000000000..b7872c827ef --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc new file mode 100644 index 00000000000..f834616e616 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/test.desc new file mode 100644 index 00000000000..5f246d405bd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe018.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_TSO_ALL/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_TSO_ALL/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_TSO_ALL/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_TSO_ALL/test.desc new file mode 100644 index 00000000000..cc8bcadd160 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPC/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPC/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPC/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPC/test.desc new file mode 100644 index 00000000000..180da74c8f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/safe018.c b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/safe018.c new file mode 100644 index 00000000000..8e96f51c940 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/safe018.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc new file mode 100644 index 00000000000..8afe0ffcbc9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe018.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e9e0473829b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe019.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_POWER_ALL/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_POWER_ALL/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_POWER_ALL/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_POWER_ALL/test.desc new file mode 100644 index 00000000000..9be71ef9171 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPC/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPC/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPC/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPC/test.desc new file mode 100644 index 00000000000..65e3b4780f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc new file mode 100644 index 00000000000..57b16843689 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_PSO_ALL/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_PSO_ALL/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_PSO_ALL/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_PSO_ALL/test.desc new file mode 100644 index 00000000000..1749c3fef07 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPC/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPC/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPC/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPC/test.desc new file mode 100644 index 00000000000..b479af95f22 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc new file mode 100644 index 00000000000..92d3ae69028 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_RMO_ALL/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_RMO_ALL/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_RMO_ALL/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_RMO_ALL/test.desc new file mode 100644 index 00000000000..8b137ae6955 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPC/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPC/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPC/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPC/test.desc new file mode 100644 index 00000000000..8e38f7ef9da --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc new file mode 100644 index 00000000000..fac0cee75ec --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/test.desc new file mode 100644 index 00000000000..8fb1d177952 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe019.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_TSO_ALL/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_TSO_ALL/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_TSO_ALL/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_TSO_ALL/test.desc new file mode 100644 index 00000000000..71766201bbf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPC/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPC/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPC/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPC/test.desc new file mode 100644 index 00000000000..43f628b95fb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/safe019.c b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/safe019.c new file mode 100644 index 00000000000..06542efdb7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/safe019.c @@ -0,0 +1,74 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 2 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc new file mode 100644 index 00000000000..c86dab48805 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe019.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..67994832ecb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe020.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_POWER_ALL/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_POWER_ALL/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_POWER_ALL/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_POWER_ALL/test.desc new file mode 100644 index 00000000000..5ea6dd0bb44 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPC/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPC/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPC/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPC/test.desc new file mode 100644 index 00000000000..ceeb2f6d7e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc new file mode 100644 index 00000000000..5a9d63e2605 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/test.desc new file mode 100644 index 00000000000..f951cf9d904 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/test.desc new file mode 100644 index 00000000000..51801998550 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc new file mode 100644 index 00000000000..fd074b3a2c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_RMO_ALL/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_RMO_ALL/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_RMO_ALL/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_RMO_ALL/test.desc new file mode 100644 index 00000000000..f83a270a1a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPC/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPC/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPC/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPC/test.desc new file mode 100644 index 00000000000..ae93a31b2c3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc new file mode 100644 index 00000000000..0683c96a231 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/test.desc new file mode 100644 index 00000000000..84bcfda851f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe020.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/test.desc new file mode 100644 index 00000000000..91d6de0a43c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/test.desc new file mode 100644 index 00000000000..f20b431d91e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/safe020.c b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/safe020.c new file mode 100644 index 00000000000..bbed0de82cd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/safe020.c @@ -0,0 +1,63 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc new file mode 100644 index 00000000000..b8b1cc8d169 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe020.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..5e5bde5f2dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe021.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_POWER_ALL/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_POWER_ALL/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_POWER_ALL/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_POWER_ALL/test.desc new file mode 100644 index 00000000000..d0e23c0908b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPC/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPC/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPC/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPC/test.desc new file mode 100644 index 00000000000..a27194b3999 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc new file mode 100644 index 00000000000..9e880c7eafb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_PSO_ALL/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_PSO_ALL/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_PSO_ALL/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_PSO_ALL/test.desc new file mode 100644 index 00000000000..093cae34237 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPC/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPC/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPC/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPC/test.desc new file mode 100644 index 00000000000..c6f0434969f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc new file mode 100644 index 00000000000..4485dd8ae43 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_RMO_ALL/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_RMO_ALL/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_RMO_ALL/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_RMO_ALL/test.desc new file mode 100644 index 00000000000..43a0a33cc32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPC/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPC/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPC/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPC/test.desc new file mode 100644 index 00000000000..bc3e1b3b48e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc new file mode 100644 index 00000000000..7cddb459e2d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/test.desc new file mode 100644 index 00000000000..e0d34f6fec9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe021.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_TSO_ALL/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_TSO_ALL/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_TSO_ALL/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_TSO_ALL/test.desc new file mode 100644 index 00000000000..893b31c148d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPC/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPC/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPC/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPC/test.desc new file mode 100644 index 00000000000..8f5c7084236 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/safe021.c b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/safe021.c new file mode 100644 index 00000000000..fbfaa7b6005 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/safe021.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc new file mode 100644 index 00000000000..4cbc4b499fc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe021.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..32a2e7631b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe022.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_POWER_ALL/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_POWER_ALL/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_POWER_ALL/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_POWER_ALL/test.desc new file mode 100644 index 00000000000..4c612594cd2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPC/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPC/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPC/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPC/test.desc new file mode 100644 index 00000000000..f29b77aa6be --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc new file mode 100644 index 00000000000..b5767f5cb0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_PSO_ALL/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_PSO_ALL/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_PSO_ALL/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_PSO_ALL/test.desc new file mode 100644 index 00000000000..f07359fb6dd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPC/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPC/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPC/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPC/test.desc new file mode 100644 index 00000000000..c947253f5d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc new file mode 100644 index 00000000000..e4541890778 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_RMO_ALL/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_RMO_ALL/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_RMO_ALL/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_RMO_ALL/test.desc new file mode 100644 index 00000000000..2144b5069c1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPC/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPC/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPC/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPC/test.desc new file mode 100644 index 00000000000..a4c35c1d538 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc new file mode 100644 index 00000000000..a612425c4c4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/test.desc new file mode 100644 index 00000000000..9fe6aebb1d2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe022.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_TSO_ALL/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_TSO_ALL/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_TSO_ALL/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_TSO_ALL/test.desc new file mode 100644 index 00000000000..5cb4e45cc1f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPC/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPC/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPC/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPC/test.desc new file mode 100644 index 00000000000..d09fc3644b8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/safe022.c b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/safe022.c new file mode 100644 index 00000000000..5bb7450ad98 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/safe022.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p1_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + __unbuffered_p1_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p1_EAX == 1 && __unbuffered_p1_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc new file mode 100644 index 00000000000..8eac0237ff1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe022.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..51b1c97b2c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe023.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_POWER_ALL/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_POWER_ALL/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_POWER_ALL/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_POWER_ALL/test.desc new file mode 100644 index 00000000000..1aac4f443a5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPC/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPC/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPC/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPC/test.desc new file mode 100644 index 00000000000..21f96ceb35c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe023.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/test.desc new file mode 100644 index 00000000000..d4a3d47f16e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe023.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_PSO_ALL/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_PSO_ALL/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_PSO_ALL/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_PSO_ALL/test.desc new file mode 100644 index 00000000000..f6d3bf20213 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe023.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPC/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPC/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPC/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPC/test.desc new file mode 100644 index 00000000000..c203865db2b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe023.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/test.desc new file mode 100644 index 00000000000..8a49bf5e6e0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe023.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_RMO_ALL/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_RMO_ALL/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_RMO_ALL/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_RMO_ALL/test.desc new file mode 100644 index 00000000000..2147357781a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe023.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPC/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPC/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPC/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPC/test.desc new file mode 100644 index 00000000000..b4b2045e73f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe023.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/test.desc new file mode 100644 index 00000000000..6ee4a621794 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe023.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/test.desc new file mode 100644 index 00000000000..82771a93dbe --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe023.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_TSO_ALL/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_TSO_ALL/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_TSO_ALL/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_TSO_ALL/test.desc new file mode 100644 index 00000000000..9b23a1cdd56 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPC/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPC/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPC/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPC/test.desc new file mode 100644 index 00000000000..b41ee2b3f39 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/safe023.c b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/safe023.c new file mode 100644 index 00000000000..d7b370b49ea --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/safe023.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 1 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc new file mode 100644 index 00000000000..5b41beed3b1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe023.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..d9fdaa08057 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe024.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_POWER_ALL/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_POWER_ALL/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_POWER_ALL/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_POWER_ALL/test.desc new file mode 100644 index 00000000000..4327209b7f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPC/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPC/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPC/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPC/test.desc new file mode 100644 index 00000000000..36eea731f1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc new file mode 100644 index 00000000000..5c9870261e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_PSO_ALL/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_PSO_ALL/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_PSO_ALL/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_PSO_ALL/test.desc new file mode 100644 index 00000000000..c9bfe11727c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPC/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPC/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPC/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPC/test.desc new file mode 100644 index 00000000000..071f5f0f79e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc new file mode 100644 index 00000000000..998d45f541e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_RMO_ALL/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_RMO_ALL/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_RMO_ALL/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_RMO_ALL/test.desc new file mode 100644 index 00000000000..9bd97e4b522 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPC/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPC/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPC/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPC/test.desc new file mode 100644 index 00000000000..db0c39bb137 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc new file mode 100644 index 00000000000..0622d32517f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/test.desc new file mode 100644 index 00000000000..ac721e62639 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe024.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_TSO_ALL/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_TSO_ALL/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_TSO_ALL/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_TSO_ALL/test.desc new file mode 100644 index 00000000000..ab25afb193a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPC/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPC/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPC/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPC/test.desc new file mode 100644 index 00000000000..b0ea90e6aed --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/safe024.c b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/safe024.c new file mode 100644 index 00000000000..3284f995c94 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/safe024.c @@ -0,0 +1,67 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + __unbuffered_p2_EBX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc new file mode 100644 index 00000000000..5a0c6e067f0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe024.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..9d230714965 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe025.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_POWER_ALL/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_POWER_ALL/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_POWER_ALL/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_POWER_ALL/test.desc new file mode 100644 index 00000000000..fdad6bbf595 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPC/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPC/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPC/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPC/test.desc new file mode 100644 index 00000000000..9465d91775a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc new file mode 100644 index 00000000000..da259891a9a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_PSO_ALL/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_PSO_ALL/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_PSO_ALL/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_PSO_ALL/test.desc new file mode 100644 index 00000000000..6005c633809 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPC/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPC/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPC/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPC/test.desc new file mode 100644 index 00000000000..6f411d37bb6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc new file mode 100644 index 00000000000..0f4aa8c7b64 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_RMO_ALL/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_RMO_ALL/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_RMO_ALL/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_RMO_ALL/test.desc new file mode 100644 index 00000000000..25c1ed363fa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPC/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPC/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPC/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPC/test.desc new file mode 100644 index 00000000000..2f6c913b0b6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc new file mode 100644 index 00000000000..0c3a46d766c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/test.desc new file mode 100644 index 00000000000..bca41ee51fe --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe025.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_TSO_ALL/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_TSO_ALL/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_TSO_ALL/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_TSO_ALL/test.desc new file mode 100644 index 00000000000..5958c2d1445 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPC/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPC/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPC/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPC/test.desc new file mode 100644 index 00000000000..fcbe1b8dfef --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/safe025.c b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/safe025.c new file mode 100644 index 00000000000..41d4ee278ba --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/safe025.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 2 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc new file mode 100644 index 00000000000..2ad15c0be83 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe025.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..80a5664ecd4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe026.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_POWER_ALL/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_POWER_ALL/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_POWER_ALL/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_POWER_ALL/test.desc new file mode 100644 index 00000000000..61dfb3e2f5b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPC/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPC/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPC/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPC/test.desc new file mode 100644 index 00000000000..8b724b1234d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc new file mode 100644 index 00000000000..44aac5fd565 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_PSO_ALL/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_PSO_ALL/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_PSO_ALL/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_PSO_ALL/test.desc new file mode 100644 index 00000000000..d1581b4e32c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPC/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPC/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPC/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPC/test.desc new file mode 100644 index 00000000000..056c9276e1d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc new file mode 100644 index 00000000000..bbf92666b7f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_RMO_ALL/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_RMO_ALL/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_RMO_ALL/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_RMO_ALL/test.desc new file mode 100644 index 00000000000..e438e731a6b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPC/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPC/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPC/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPC/test.desc new file mode 100644 index 00000000000..1bea39232aa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc new file mode 100644 index 00000000000..5fb46a1e6b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/test.desc new file mode 100644 index 00000000000..e0210f345bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe026.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_TSO_ALL/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_TSO_ALL/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_TSO_ALL/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_TSO_ALL/test.desc new file mode 100644 index 00000000000..f37c2e5cfd2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPC/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPC/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPC/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPC/test.desc new file mode 100644 index 00000000000..75a0db6e065 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/safe026.c b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/safe026.c new file mode 100644 index 00000000000..c17a5ba50e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/safe026.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && __unbuffered_p2_EAX == 2 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc new file mode 100644 index 00000000000..35466976d95 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe026.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..154fd2b6907 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe027.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_POWER_ALL/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_POWER_ALL/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_POWER_ALL/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_POWER_ALL/test.desc new file mode 100644 index 00000000000..c5f2c558249 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPC/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPC/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPC/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPC/test.desc new file mode 100644 index 00000000000..e1d753050b1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc new file mode 100644 index 00000000000..37d726728ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/test.desc new file mode 100644 index 00000000000..9d0307cc9d0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/test.desc new file mode 100644 index 00000000000..2bf4642284b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc new file mode 100644 index 00000000000..29cb693e496 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_RMO_ALL/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_RMO_ALL/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_RMO_ALL/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_RMO_ALL/test.desc new file mode 100644 index 00000000000..c675ea1128d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPC/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPC/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPC/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPC/test.desc new file mode 100644 index 00000000000..7f868a6fa2a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc new file mode 100644 index 00000000000..0c428ce8f7c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/test.desc new file mode 100644 index 00000000000..f2af41bad6a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe027.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/test.desc new file mode 100644 index 00000000000..eb0e643b02d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/test.desc new file mode 100644 index 00000000000..dfa5912dded --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/safe027.c b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/safe027.c new file mode 100644 index 00000000000..3c593736cfa --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/safe027.c @@ -0,0 +1,75 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p0_EBX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + __unbuffered_p0_EBX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p0_EBX == 0 && + __unbuffered_p2_EAX == 1 && __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc new file mode 100644 index 00000000000..acd20502f12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe027.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..bc560f8ef1a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe028.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_POWER_ALL/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_POWER_ALL/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_POWER_ALL/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_POWER_ALL/test.desc new file mode 100644 index 00000000000..028832e488e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPC/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPC/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPC/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPC/test.desc new file mode 100644 index 00000000000..9dd8ad98cbb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc new file mode 100644 index 00000000000..baf396efd61 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_PSO_ALL/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_PSO_ALL/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_PSO_ALL/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_PSO_ALL/test.desc new file mode 100644 index 00000000000..f1a9ae36b2f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPC/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPC/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPC/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPC/test.desc new file mode 100644 index 00000000000..8d220e09ab4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc new file mode 100644 index 00000000000..5f5a3ea7e76 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_RMO_ALL/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_RMO_ALL/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_RMO_ALL/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_RMO_ALL/test.desc new file mode 100644 index 00000000000..ebfa2a403da --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPC/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPC/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPC/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPC/test.desc new file mode 100644 index 00000000000..05eb3a5ae48 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc new file mode 100644 index 00000000000..6fb0a774b93 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/test.desc new file mode 100644 index 00000000000..b13496e5d79 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe028.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_TSO_ALL/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_TSO_ALL/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_TSO_ALL/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_TSO_ALL/test.desc new file mode 100644 index 00000000000..340ca3e6a0d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPC/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPC/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPC/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPC/test.desc new file mode 100644 index 00000000000..7a9e337a362 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/safe028.c b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/safe028.c new file mode 100644 index 00000000000..b7eb39c0e4e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/safe028.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p2_EBX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = x; + __unbuffered_p2_EBX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p2_EAX == 1 && + __unbuffered_p2_EBX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc new file mode 100644 index 00000000000..b6fa4e93ca0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe028.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..3006d34520c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe029.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_POWER_ALL/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_POWER_ALL/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_POWER_ALL/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_POWER_ALL/test.desc new file mode 100644 index 00000000000..4ce37ec9cf0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPC/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPC/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPC/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPC/test.desc new file mode 100644 index 00000000000..015e95ff360 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc new file mode 100644 index 00000000000..a986a801990 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_PSO_ALL/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_PSO_ALL/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_PSO_ALL/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_PSO_ALL/test.desc new file mode 100644 index 00000000000..87f78c7b522 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPC/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPC/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPC/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPC/test.desc new file mode 100644 index 00000000000..8107ce752c5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc new file mode 100644 index 00000000000..e7af82b9901 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_RMO_ALL/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_RMO_ALL/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_RMO_ALL/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_RMO_ALL/test.desc new file mode 100644 index 00000000000..994b8613dff --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPC/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPC/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPC/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPC/test.desc new file mode 100644 index 00000000000..5d890e7dc22 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc new file mode 100644 index 00000000000..99357f58df5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/test.desc new file mode 100644 index 00000000000..f4ed748f882 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe029.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/test.desc new file mode 100644 index 00000000000..99b2d45c8c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/test.desc new file mode 100644 index 00000000000..7051d2a6897 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/safe029.c b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/safe029.c new file mode 100644 index 00000000000..a4850333504 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/safe029.c @@ -0,0 +1,50 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc new file mode 100644 index 00000000000..97b1dfb9adf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe029.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..57b034ee030 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe030.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_POWER_ALL/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_POWER_ALL/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_POWER_ALL/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_POWER_ALL/test.desc new file mode 100644 index 00000000000..7c9cc597829 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPC/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPC/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPC/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPC/test.desc new file mode 100644 index 00000000000..fff826b1a3f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc new file mode 100644 index 00000000000..15f31210d49 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_PSO_ALL/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_PSO_ALL/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_PSO_ALL/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_PSO_ALL/test.desc new file mode 100644 index 00000000000..c125f18740f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPC/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPC/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPC/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPC/test.desc new file mode 100644 index 00000000000..de546d40589 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc new file mode 100644 index 00000000000..d368ae5664c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_RMO_ALL/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_RMO_ALL/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_RMO_ALL/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_RMO_ALL/test.desc new file mode 100644 index 00000000000..e916131f597 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPC/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPC/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPC/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPC/test.desc new file mode 100644 index 00000000000..21e90a81f9c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc new file mode 100644 index 00000000000..febdf259193 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/test.desc new file mode 100644 index 00000000000..c12df741345 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe030.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/test.desc new file mode 100644 index 00000000000..ed5c39a4a50 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/test.desc new file mode 100644 index 00000000000..408bd0eab32 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/safe030.c b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/safe030.c new file mode 100644 index 00000000000..9ac6a9668a6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/safe030.c @@ -0,0 +1,62 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && z == 2), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc new file mode 100644 index 00000000000..dd22548ee08 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe030.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..48289f28fd7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe031.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_POWER_ALL/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_POWER_ALL/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_POWER_ALL/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_POWER_ALL/test.desc new file mode 100644 index 00000000000..3e02ef5d585 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPC/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPC/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPC/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPC/test.desc new file mode 100644 index 00000000000..b668f792fb9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc new file mode 100644 index 00000000000..485522f3521 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_PSO_ALL/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_PSO_ALL/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_PSO_ALL/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_PSO_ALL/test.desc new file mode 100644 index 00000000000..c2c37587e39 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPC/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPC/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPC/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPC/test.desc new file mode 100644 index 00000000000..9e32de91b0b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc new file mode 100644 index 00000000000..818e0f95491 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_RMO_ALL/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_RMO_ALL/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_RMO_ALL/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_RMO_ALL/test.desc new file mode 100644 index 00000000000..6bf9c29febb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPC/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPC/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPC/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPC/test.desc new file mode 100644 index 00000000000..c1b74f1d755 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc new file mode 100644 index 00000000000..02a1821ad45 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/test.desc new file mode 100644 index 00000000000..803f724af04 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe031.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_TSO_ALL/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_TSO_ALL/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_TSO_ALL/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_TSO_ALL/test.desc new file mode 100644 index 00000000000..87b89adf120 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPC/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPC/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPC/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPC/test.desc new file mode 100644 index 00000000000..93ecb193f50 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/safe031.c b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/safe031.c new file mode 100644 index 00000000000..2c196949472 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/safe031.c @@ -0,0 +1,64 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 2; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && z == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc new file mode 100644 index 00000000000..d6c9f80de67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe031.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..318cd3f2306 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe032.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_POWER_ALL/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_POWER_ALL/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_POWER_ALL/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_POWER_ALL/test.desc new file mode 100644 index 00000000000..b9f8d46e928 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPC/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPC/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPC/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPC/test.desc new file mode 100644 index 00000000000..dc5eb7173af --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc new file mode 100644 index 00000000000..d2e8fb4e39a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_PSO_ALL/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_PSO_ALL/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_PSO_ALL/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_PSO_ALL/test.desc new file mode 100644 index 00000000000..d6993599f25 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPC/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPC/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPC/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPC/test.desc new file mode 100644 index 00000000000..b4249d5b79c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc new file mode 100644 index 00000000000..815ccaf3fee --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_RMO_ALL/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_RMO_ALL/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_RMO_ALL/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_RMO_ALL/test.desc new file mode 100644 index 00000000000..461d4a155f7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPC/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPC/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPC/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPC/test.desc new file mode 100644 index 00000000000..bba60a89aa0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc new file mode 100644 index 00000000000..844c26d7be1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/test.desc new file mode 100644 index 00000000000..5a077ccb648 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe032.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_TSO_ALL/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_TSO_ALL/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_TSO_ALL/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_TSO_ALL/test.desc new file mode 100644 index 00000000000..94137b74814 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPC/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPC/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPC/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPC/test.desc new file mode 100644 index 00000000000..b29559353eb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/safe032.c b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/safe032.c new file mode 100644 index 00000000000..3fb300b84a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/safe032.c @@ -0,0 +1,65 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + x = 2; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(x == 2 && y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc new file mode 100644 index 00000000000..a7d458ad3ab --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe032.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..5c9802a12d1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe033.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_POWER_ALL/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_POWER_ALL/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_POWER_ALL/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_POWER_ALL/test.desc new file mode 100644 index 00000000000..1de5aaf89c7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe033.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPC/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPC/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPC/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPC/test.desc new file mode 100644 index 00000000000..8009a1b4b4d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc new file mode 100644 index 00000000000..c778b22227e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_PSO_ALL/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_PSO_ALL/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_PSO_ALL/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_PSO_ALL/test.desc new file mode 100644 index 00000000000..f163db3f015 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPC/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPC/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPC/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPC/test.desc new file mode 100644 index 00000000000..045a893eeae --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc new file mode 100644 index 00000000000..7397227e042 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_RMO_ALL/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_RMO_ALL/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_RMO_ALL/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_RMO_ALL/test.desc new file mode 100644 index 00000000000..b4a82e09985 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPC/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPC/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPC/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPC/test.desc new file mode 100644 index 00000000000..891b2a8f0e2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc new file mode 100644 index 00000000000..3d3fc27eebd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/test.desc new file mode 100644 index 00000000000..c4d7b57fb7b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe033.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/test.desc new file mode 100644 index 00000000000..9528e38951f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/test.desc new file mode 100644 index 00000000000..9c953e3d3fd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/safe033.c b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/safe033.c new file mode 100644 index 00000000000..4e2844e2971 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/safe033.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc new file mode 100644 index 00000000000..d93bfa51cf2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe033.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e75035b9e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe034.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_POWER_ALL/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_POWER_ALL/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_POWER_ALL/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_POWER_ALL/test.desc new file mode 100644 index 00000000000..9f12fabbb71 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe034.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPC/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPC/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPC/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPC/test.desc new file mode 100644 index 00000000000..b9d4f347e93 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_PSO_ALL/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_PSO_ALL/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_PSO_ALL/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_PSO_ALL/test.desc new file mode 100644 index 00000000000..bb59d6f1451 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +PSO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPC/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPC/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPC/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPC/test.desc new file mode 100644 index 00000000000..5e3350d054f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +PSO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc new file mode 100644 index 00000000000..68a5107085a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +PSO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_RMO_ALL/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_RMO_ALL/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_RMO_ALL/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_RMO_ALL/test.desc new file mode 100644 index 00000000000..52b606a0d2c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPC/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPC/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPC/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPC/test.desc new file mode 100644 index 00000000000..d59ad1b3d36 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc new file mode 100644 index 00000000000..65b80030936 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/test.desc new file mode 100644 index 00000000000..80c80698c02 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe034.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_TSO_ALL/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_TSO_ALL/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_TSO_ALL/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_TSO_ALL/test.desc new file mode 100644 index 00000000000..ceb84d690b0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPC/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPC/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPC/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPC/test.desc new file mode 100644 index 00000000000..be63e7406e3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/safe034.c b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/safe034.c new file mode 100644 index 00000000000..a3efa0ab7c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/safe034.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(z == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc new file mode 100644 index 00000000000..13b8e42b022 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe034.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/test.desc new file mode 100644 index 00000000000..e5242e318e1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe035.c +CAV11 ERROR +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_POWER_ALL/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_POWER_ALL/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_POWER_ALL/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_POWER_ALL/test.desc new file mode 100644 index 00000000000..98d22316651 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe035.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPC/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPC/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPC/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPC/test.desc new file mode 100644 index 00000000000..dac30e3f802 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe035.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/test.desc new file mode 100644 index 00000000000..ef7202a9ba0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +FUTURE +safe035.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_PSO_ALL/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_PSO_ALL/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_PSO_ALL/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_PSO_ALL/test.desc new file mode 100644 index 00000000000..ed18b4c46c2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPC/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPC/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPC/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPC/test.desc new file mode 100644 index 00000000000..347857a2b34 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc new file mode 100644 index 00000000000..e372bf2bb7b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_RMO_ALL/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_RMO_ALL/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_RMO_ALL/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_RMO_ALL/test.desc new file mode 100644 index 00000000000..47350e18f17 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPC/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPC/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPC/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPC/test.desc new file mode 100644 index 00000000000..5e14638a78b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc new file mode 100644 index 00000000000..067eddb87e7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/test.desc new file mode 100644 index 00000000000..82294ac2fb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe035.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_TSO_ALL/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_TSO_ALL/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_TSO_ALL/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_TSO_ALL/test.desc new file mode 100644 index 00000000000..4d49e9a4b60 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPC/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPC/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPC/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPC/test.desc new file mode 100644 index 00000000000..1e32a5717f5 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/safe035.c b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/safe035.c new file mode 100644 index 00000000000..88a4f15d8bb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/safe035.c @@ -0,0 +1,68 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 2; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(y == 2 && __unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc new file mode 100644 index 00000000000..4b5c5c80e5d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe035.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..23e7eccd663 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe036.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_POWER_ALL/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_POWER_ALL/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_POWER_ALL/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_POWER_ALL/test.desc new file mode 100644 index 00000000000..b0fc4763e33 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPC/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPC/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPC/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPC/test.desc new file mode 100644 index 00000000000..a5e652a72cf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc new file mode 100644 index 00000000000..c4ca5328029 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_PSO_ALL/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_PSO_ALL/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_PSO_ALL/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_PSO_ALL/test.desc new file mode 100644 index 00000000000..8210364ea7b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPC/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPC/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPC/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPC/test.desc new file mode 100644 index 00000000000..cb8fe6db8c0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc new file mode 100644 index 00000000000..4330c62ffeb --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_RMO_ALL/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_RMO_ALL/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_RMO_ALL/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_RMO_ALL/test.desc new file mode 100644 index 00000000000..3d2b5462ddd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPC/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPC/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPC/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPC/test.desc new file mode 100644 index 00000000000..2af3db35a67 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc new file mode 100644 index 00000000000..63b3c1bdc70 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/test.desc new file mode 100644 index 00000000000..42aefd81f73 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe036.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_TSO_ALL/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_TSO_ALL/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_TSO_ALL/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_TSO_ALL/test.desc new file mode 100644 index 00000000000..e3ff5b04c40 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPC/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPC/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPC/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPC/test.desc new file mode 100644 index 00000000000..99623014616 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/safe036.c b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/safe036.c new file mode 100644 index 00000000000..6dd1be564c6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/safe036.c @@ -0,0 +1,54 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + y = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc new file mode 100644 index 00000000000..5b311991045 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe036.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..e22722c0b85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe037.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_POWER_ALL/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_POWER_ALL/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_POWER_ALL/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_POWER_ALL/test.desc new file mode 100644 index 00000000000..aa501c30e11 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +POWER ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPC/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPC/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPC/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPC/test.desc new file mode 100644 index 00000000000..b75b6205fe0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +POWER OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc new file mode 100644 index 00000000000..73f22d96d93 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +POWER OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_PSO_ALL/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_PSO_ALL/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_PSO_ALL/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_PSO_ALL/test.desc new file mode 100644 index 00000000000..efb88530eb0 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPC/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPC/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPC/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPC/test.desc new file mode 100644 index 00000000000..56e32508412 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc new file mode 100644 index 00000000000..7a4729ed630 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_RMO_ALL/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_RMO_ALL/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_RMO_ALL/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_RMO_ALL/test.desc new file mode 100644 index 00000000000..b1762f14c02 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +RMO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPC/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPC/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPC/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPC/test.desc new file mode 100644 index 00000000000..5db314f5951 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +RMO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc new file mode 100644 index 00000000000..4c462f457f6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +RMO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/test.desc new file mode 100644 index 00000000000..568b2b1739d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +safe037.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_TSO_ALL/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_TSO_ALL/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_TSO_ALL/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_TSO_ALL/test.desc new file mode 100644 index 00000000000..670f49923cc --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPC/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPC/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPC/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPC/test.desc new file mode 100644 index 00000000000..d95eb897d2e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/safe037.c b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/safe037.c new file mode 100644 index 00000000000..48fc03c71a7 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/safe037.c @@ -0,0 +1,69 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + z = 1; + fence(); + __unbuffered_p0_EAX = x; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + x = 1; + fence(); + __unbuffered_p1_EAX = y; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + y = 1; + fence(); + __unbuffered_p2_EAX = z; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 0 && __unbuffered_p1_EAX == 0 && + __unbuffered_p2_EAX == 0), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc new file mode 100644 index 00000000000..c6b48e545c9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +safe037.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..362d249e93b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin000.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_POWER_ALL/test.desc new file mode 100644 index 00000000000..b3b762c92f3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_POWER_ALL/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_POWER_ALL/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_POWER_ALL/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPC/test.desc new file mode 100644 index 00000000000..0d97964282e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPC/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPC/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPC/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc new file mode 100644 index 00000000000..ed47fc0cd8b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_PSO_ALL/test.desc new file mode 100644 index 00000000000..14987c1a40d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_PSO_ALL/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_PSO_ALL/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_PSO_ALL/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPC/test.desc new file mode 100644 index 00000000000..11934155e15 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPC/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPC/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPC/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc new file mode 100644 index 00000000000..6048dc6b06b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_RMO_ALL/test.desc new file mode 100644 index 00000000000..87fead62774 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_RMO_ALL/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_RMO_ALL/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_RMO_ALL/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPC/test.desc new file mode 100644 index 00000000000..c291c35fc8a --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPC/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPC/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPC/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc new file mode 100644 index 00000000000..5e2c58e98b4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/test.desc new file mode 100644 index 00000000000..04100b1da57 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin000.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_TSO_ALL/test.desc new file mode 100644 index 00000000000..a57eea02842 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_TSO_ALL/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_TSO_ALL/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_TSO_ALL/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPC/test.desc new file mode 100644 index 00000000000..8c891ca82d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPC/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPC/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPC/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc new file mode 100644 index 00000000000..716618d168e --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin000.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/thin000.c b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/thin000.c new file mode 100644 index 00000000000..3c61f9edecd --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/thin000.c @@ -0,0 +1,52 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int x = 0; +int y = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = y; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); + __CPROVER_assume(__unbuffered_cnt == 2); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..17d7240679f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin001.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_POWER_ALL/test.desc new file mode 100644 index 00000000000..fe22bc59ab6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_POWER_ALL/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_POWER_ALL/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_POWER_ALL/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPC/test.desc new file mode 100644 index 00000000000..b874f612401 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPC/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPC/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPC/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc new file mode 100644 index 00000000000..a740967c978 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +POWER OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_PSO_ALL/test.desc new file mode 100644 index 00000000000..854a4e43be6 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_PSO_ALL/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_PSO_ALL/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_PSO_ALL/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPC/test.desc new file mode 100644 index 00000000000..de9f61e16a8 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPC/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPC/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPC/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc new file mode 100644 index 00000000000..bc432cb9ea2 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_RMO_ALL/test.desc new file mode 100644 index 00000000000..a18d0db217d --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_RMO_ALL/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_RMO_ALL/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_RMO_ALL/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPC/test.desc new file mode 100644 index 00000000000..0f753f26bf3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPC/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPC/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPC/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc new file mode 100644 index 00000000000..6522eac690c --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/test.desc new file mode 100644 index 00000000000..ddb40c90b02 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin001.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_TSO_ALL/test.desc new file mode 100644 index 00000000000..06983a36df4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_TSO_ALL/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_TSO_ALL/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_TSO_ALL/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPC/test.desc new file mode 100644 index 00000000000..e50c1980dad --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPC/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPC/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPC/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc new file mode 100644 index 00000000000..868bd4d1bc1 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin001.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/thin001.c b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/thin001.c new file mode 100644 index 00000000000..eddaee2501b --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/thin001.c @@ -0,0 +1,66 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = z; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); + __CPROVER_assume(__unbuffered_cnt == 3); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/test.desc new file mode 100644 index 00000000000..0fc914276a9 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin002.c +CAV11 SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_POWER_ALL/test.desc new file mode 100644 index 00000000000..43cfa1688d3 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_POWER_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin002.c +POWER ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_POWER_ALL/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_POWER_ALL/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_POWER_ALL/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPC/test.desc new file mode 100644 index 00000000000..3c6f0c46a85 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +POWER OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPC/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPC/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPC/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_PSO_ALL/test.desc new file mode 100644 index 00000000000..27f258f5969 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_PSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +PSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_PSO_ALL/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_PSO_ALL/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_PSO_ALL/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPC/test.desc new file mode 100644 index 00000000000..04badb1ee04 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +PSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPC/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPC/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPC/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc new file mode 100644 index 00000000000..afb32b7ff12 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +PSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_RMO_ALL/test.desc new file mode 100644 index 00000000000..975018c9c69 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_RMO_ALL/test.desc @@ -0,0 +1,8 @@ +FUTURE +thin002.c +RMO ALL +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_RMO_ALL/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_RMO_ALL/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_RMO_ALL/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPC/test.desc new file mode 100644 index 00000000000..8170a320194 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +RMO OPC +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPC/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPC/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPC/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc new file mode 100644 index 00000000000..227b17e90bf --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +RMO OPT +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/test.desc new file mode 100644 index 00000000000..75ac393cf73 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/test.desc @@ -0,0 +1,8 @@ +KNOWNBUG +thin002.c +SC SAFE +^EXIT=10$ +^SIGNAL=0$ +^VERIFICATION FAILED$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_TSO_ALL/test.desc new file mode 100644 index 00000000000..196f0aa1461 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_TSO_ALL/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +TSO ALL +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_TSO_ALL/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_TSO_ALL/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_TSO_ALL/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPC/test.desc new file mode 100644 index 00000000000..cbd15fab380 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPC/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +TSO OPC +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPC/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPC/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPC/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc new file mode 100644 index 00000000000..12b9d85e1e4 --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc @@ -0,0 +1,8 @@ +THOROUGH +thin002.c +TSO OPT +^EXIT=0$ +^SIGNAL=0$ +^VERIFICATION SUCCESSFUL$ +-- +^warning: ignoring diff --git a/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/thin002.c b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/thin002.c new file mode 100644 index 00000000000..b84b5166e4f --- /dev/null +++ b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/thin002.c @@ -0,0 +1,79 @@ +void fence() +{ + asm("sync"); +} +void lwfence() +{ + asm("lwsync"); +} +void isync() +{ + asm("isync"); +} + +int __unbuffered_cnt = 0; +int __unbuffered_p0_EAX = 0; +int __unbuffered_p1_EAX = 0; +int __unbuffered_p2_EAX = 0; +int __unbuffered_p3_EAX = 0; +int a = 0; +int x = 0; +int y = 0; +int z = 0; + +void *P0(void *arg) +{ + __unbuffered_p0_EAX = a; + x = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P1(void *arg) +{ + __unbuffered_p1_EAX = x; + y = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P2(void *arg) +{ + __unbuffered_p2_EAX = y; + z = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +void *P3(void *arg) +{ + __unbuffered_p3_EAX = z; + a = 1; + // Instrumentation for CPROVER + fence(); + __unbuffered_cnt++; +} + +int main() +{ +__CPROVER_ASYNC_0: + P0(0); +__CPROVER_ASYNC_1: + P1(0); +__CPROVER_ASYNC_2: + P2(0); +__CPROVER_ASYNC_3: + P3(0); + __CPROVER_assume(__unbuffered_cnt == 4); + fence(); + // EXPECT:exists + __CPROVER_assert( + !(__unbuffered_p0_EAX == 1 && __unbuffered_p1_EAX == 1 && + __unbuffered_p2_EAX == 1 && __unbuffered_p3_EAX == 1), + "Program was expected to be safe for X86, model checker should have said " + "NO.\nThis likely is a bug in the tool chain."); + return 0; +} diff --git a/regression/goto-instrument-wmm-full.tgz b/regression/goto-instrument-wmm-full.tgz deleted file mode 100644 index 12845d01390e751d5e7b6b46a57cf8020cb6f2c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276952 zcmb5Xdwf*YxjwGdo?xX7mL5_0>WFYodeewlqTIHEHuh$$T0uEDYS4JY6hQ-luu4HA zhhjil5ks;|(MAi16l=r)8$}2R$p8TYgfN7J47pB{$z(D!d$0HRyzia>_I5tMzoKMj zU)Flp^FHtMK5NCZxZg#itip#bx}S@-s@t$WN_SMX`53CJ&IwKuP(TZyS+^)lWv(FfL;WI6% z#RhZHGi4nTSo7Z)?#IjoptMQe>4Ubx}#Vfp_<=KzYX-l73oBgPA zDl(Klw&79gs0v!qAJE<`|CUFL-fYj@j$=NrvvaM--Zas(P5UgRQYeB*i_v#(L1Mx}RJxVPP28cy@;jtX-dh3uVcgDMnW zq2etoD1JDQO7SzvdA-Y*lSCPqOv^Lj1skeK>ZQkj$)6*oJX)hdaAs$*OZ=foE>)*|>jR_oiy)tVwU@Bj!)e*^l{C-Z=Nm`iiP_PWRNlMNyG6H6o_E^1#^@|lM|y9M zsCCA?aGBZjrq%dlG}^E@&FU!pRacgo7j8atIOL;-!@g~E!=6X4{4J$Maz4*D<~)4Y zypFCB-Yb_Gv%^na5lx!cSc*Ac8}~T}45~|`Glf>X)3?p8E%1+NE%0m`Q>(g??I#Rs zjZmxa(JS{GvuEc~*IvJ#@9&9hi{z^{{`kp=j&1V!f9Um7PcZh^rxiu!CHZN2JY%q` z3NEo~TIttkJg*p^Xo^*vx_fzs3fJHv5AV(GsWO}uRQ;*$_RZ^BZqQGrT=P)a-*Z1r zt9iNXVY=cSO>HLmRnKx$?^VtQ^XOG)o9WCFddcd}*dL{kikAdy=;d0cjCSmgQDiCA zysv(Hl&p9tWg;D+&eLk^jUQ0IB@}pwvbNEYn&wc!{-}B?tST+P>i<5O_TXn7Yga57 z@r`L0w>wm}@I8)D$&<@(zWL_V#ejD}YQBJAOyvNCm`klC%oTslIMR)1aCAKeOjBg<) zpmtD2z%!&L zvdZO|n>~AJm);Qd+|_LErOJ)Ej27?jP4Ut5vGlX{jDY%9i(0skdUjKB{L-^_f#a`; zd4`02XH?5>T1Nx;dD3D=hBNdd?N>U@_OGKWo}gco8CU(6s6XqPbf-iutTcW}-=zE& zV?5txSF~WK<6XGR*rbgfwVtjRMPI}WJ2;N|y{|r?pmx-hV!G=dXGYZD9L-p|%jnW- z71jO^e{y@A>imxP)qPYMQ1XpjT@p9?7pY(C5+8=e^EPdstxXJyPj%XZ#@Bm_=rm7T zQo!nU@|W^}45yc->!FyjJ@imO{dT5aWM{vmQ|{rXyE0C9+)w|b(;C%=So+iU8b=k= zooDR@4&QDiU9yU1|1N5_(~x&`XVm0zS`aeU(|||lsGVV|g-4CCw9_&0eveR-XLTs~ zh}uS1+)p#f4A9lr(7u?OP09BJ%t@3Qq>F#TuX%fnNArG~MW!F|re4&gVb6qsSxD2I z@}*H@vz^_o+KOrFJx+bd;3-V%vgT0aXBR)_6zq?wVAS7X-FSrhZB(D?O?3I{&Vow3 zead*g#OY|ptA~t}6ws*{jW((>#s@sD6mkld#!BM2@zwmkkzQS@@xIGL)>it%>X5I3 z#^vcNZlOW9(TsiSL@iB_n^*8GoUk(jG~y$@F={sQO>_0)xPj;XhHW4dcyH4Z6O5YG%tqWe(JRmOxMrUpG8f? zzh_(wj#y|T*A)oO`|M{ElhW;yb*7?U_iVCLCmZCKs42j zJTF#-#7!6obbfL-(cmHBf(S)5UK03`sY|1t3H9a}+B8RBg4r#i&2#k?H&DyhdZ;#T zeO!pO(`;7KD)I?F%xJKBXh`3x#z&u^2c6Q_gVy1Y7Zd%Co^yyAElkEA^_*V61P9`H zw<@9v07$^7p*?uBMk6?n7s^IE+y7%NF@d+;Wn(Q4$4kWh63Rj3zx3VqhR1ZNKcH?Z z=19ZEUZ9kF0-i0D!9#vlTj9p27lZx~UE5Cc1?VDnD%R0^^m0&rP1ezEv~iXmxVkf= zQazdo)U3F172=!x!@CTC*&$;EtuLlapRw0OtQKCLC#gMFur%u59yK$y-;K1r^yV_m zZN99tyc0AlW;4Rg(UA@n0;sfl*3zzs88L3bb703uD0(2+Cs+z4m67Yeu;BHuH zo*;$dyjXf%aO$ClX~j^7*K1By$cyN^hR)i9c#Jm3g1>g$m~OYT-bf^ovAp~^ z>H0%ff1ZIdMcy_VR$jDg$&yJuSwor7?=_q`#hWkZ|M+gF_y`HZBsQ zA5)2+`md*mpK>DBY`tJePr+eT5G`n@>m}?w0fFF@W()T-@O31u7xln<>T!t;JYTc4 z-^P3Z;mUW@3A$UtS<-zkM>+$*# zYcwsvS8HkBY@IYDWR2~z0^=?oMTHS-KCjT=a0+%IG(s5-DlMokc?R^{4vv(}^aRax z0x^!bIAJzMVLh2lfH2Y_oq<_6j_2g8B)`5N1i(LSBV8gxur}ivR?+QU;B&T%*q8&eODm0yI+;r13Vh-w8l6riz>&cX0dNgX)q=WsR3zGvr5(`vi$~`RdM~T^c-PE>r=_xl<=ad|{fF=|r$# zc-a*=UJg=DaN&hKnrG+DlYF>t9K z`EPGjF(hTogtlhvqwZ+>YYv#>87FxC5ZnCwT;gRx2(J5O<9TNNz@WxQJSu;FFQxg=?C!}Jk<1eD0AB-j)A!Zpo z)`R`D7=a=Q5fq^>A%Y5Q(imqG;~b>pX$}Sj+^taotw1L5jq~Jf3gcpD!4dER&c5C; zv;cz;!LSmvGcZ64Rw%enPkn!qyW);VD0S0F{DpN<=fyT_*C(&@+ zHDnx7{a4c9S>zwt#R=q)F^;Ohka*y?0C(?Uez=sOl!Y&WvIjPMK0FV2Z(E3_+DoBXq{ezMij?NC}d}*O3q9 zLr;cD-B|Aom+!l9S(T_NNX!GYbmv) z81Z8hy(k$nbpSP^Bzt5{<^Tb6H&vF=1WdmBFehoxfOvX9y|6fN+$A7h0f@`31H|9qf;fg5wS6#!DH0val#$(x<$=pfW zVTJrxpKPazmJ_q)bv8N1f|LigS5je^vk_RPvEpkzL2`brf3RbOt_l98l3t7i?TN1j z>>U5a8NJ3Jpy5v`<5%-*<5=jvZJWUo9|L!Fp&LO`~o!CN)hD2y?(qrV5-cCt>3e&!;|Cm**0>;hV zIzHkKUvEUGy!ts+rQ9)^F!NP96)WceseQlSO7RXmx$pm;Md2PTZ>QUf0OGNH{6|i;S{Ur6#-8#GZ{}=q zf-6Iwn$wOKt1xG!j_!;2b7#{)_)pf_lG@nLxVP_ zIOZ|(df&X*8F;HUCp$nEV98YNe=?TUq^{L%l(pNL&_eZ2P$Lt19wv{j+N zq_U90G7R40gx-(QBuvPQ%-fg5u>QCnAFPXL-_l<19!~c)Ay5C6>K2-uuCp}i{-hvn zT}7Yo=Xcw>g_aEIM(tW3_l2ncX7v|6Io$!f*=0O{6;$SU`mIzq)8GJ&p^KNrOO8;v z-oQLovCv)yVEpfpZl6!M zbtJi33dJ=cFK`#vM9to1#0?DZp%}vTFaQbqPreEe0Dq6R@)}f+x_+wuj0bv7D4M?8 z*@1U(X)>eh7c{?z#K2Y7;J>XJnAMfotEYo9ux`gC1AZgO2+{2Ri)irM zGQ>7t3U4bl*;!^bQpf`cIu74=6PPgP z;f=IlNGA<{o2Cp+ObjAgB%dNT&7z6~k(K*`8gEv!^x{Ne6;b?{G1{jjp1Ejzr>}~X ziGLkM3WPu`9&qQS@hn!2Ka_K0Vf$?G7eI^p769iA`0%|#cNd>%K#T3 zB&*ej8g+3iP2KHmay*slNrZ^wIZ0ng=q#gLoj(M@qaKAO;3^28$#2TBY%BqYIs4S4 zTDlXVDW!X70ZMnMN2gWMbTSdai269-XgBe%+Sfm-^b`$y_Hr<1g+7sw4F^M6LHIIH47i!XS_vii=!Ty_t9Hu(6C6dpCrg~ zsSIy_S{0(&c>)zZPfNP47b&=j%67SNwn$sgH7I1Ag&L(^P(88Rc_8d>v^`L}9^je2 zROYiPqP{dpMos&d`HUzj8JyqMdk^1diY{ zW7|=*48jUwbpZtip6M9vSlVmswu4&x-`weNWUQncPZI0d$m%m7r3!$CFy;Xf$Ck$P zTMWk)uI3T)84^&JZTxFAG51pdY^mMT&aW?bT}i+%-_@)O+~MN2<`sKBx)B2V(cOY> zBew&obKlkA$Pg{=gz*O&dy-gmL4Yxwb2muMCfY4 zuxm4+Gc)|o(Iq$;0>Q9|t1J2Th743M*HcXz6zqjMsxiFh z6C8wCUJ#g;X<+aT`h6EdBt5dy-DvJ3F!|pKg6*S|-33eISw3n_$WixVwSPhBPm})> zPN#Rf!_8F&GG;T#DO8%72nshnCZC5-XzhR;!EM|hD@}WgDM`TdOjIr92P#@az7P*2 zkT+H^B;sQUiq$}wp)aWXXNrP3AY@_bA>bMTJN=8) z52@@0NfaOGIr|6_0Jz3sl@_4ih!)hFqeoBR(fqM4o23Wib%0& zu$brq#E!VS6Oiu&`N<(cPNpHlboJE{tf@syqb52hT-%tNDI4`O{xe`=270Y1RG?T= zi&Yyp?+``@-V2C6qzWU(d|6H1b`pZ8h+0A0IhRCl22uiHReU!v(Y<-O!*VP}C=SK; zPPu;}4cW4js#Eo#k0@IK#&%aJ_PkRnneT`yrYCmWV2Fhw57KF? zy`h%d0U0P_^yQeFR%Bw4U_!}_`0O2foCgBxO0c9|#tfZ>X4y~d?1AmBLV)qA=J9$3 zB~*;Q1sM!Nio-GObn$T43lnIPgBM39U#^H{Sn^9R} zvK>{1c$1|K!9P){57Uv$0I9@}Xwow%)tDAxCGL+V1w`#XkDa3PN>2xzG-RyC3i2R> z_h=(-ak_9oHb+d=opE}7CxeL(i5fzg+)=xCe2a#2eQLy0_m1}K$cc!FuGu2Wsd4g} zquy_ckn6LYngGqypuAX^)LKK|BY+Y>sP<)L{)OIT;&sUQSfiU%f}FEiJ?$t2CzJ@= zs%a072pH8*zC=mjAup6!8HZ_alN7(rRxL9_tQ%y^-4Or6D~x#aJgPo=@w}d)rxpdR zy%9rZ>MG4DEXLm0<$%*XaTcTR*pq6#-ey>SZ#&tp`c zseNZ~Hz`Hp&|g;zgK@mzO@F0&)Wd}?H7__E9%JM;> zrZapA_?b%{VKSVk)lJN?HwDx~j8%J(Z;)IT(Gsk@xK$Xk5H?fMvxr%U2YwLL6AXa^ zk+l?xW`JOvPB0e&nfQdBl=|a+dR1Ah!ptQTWfoJ{avf}rW+M-7(*7;<^#?UrJl8C zro4R-q>xJ0z85TDbqCGtcNBW}G!!B4IY#Hz`=j1=o#PB0Q)lV^vv#>9Dm{NiFIqdZ zbpGmYdJz8|;%LI>e|hP+di1A~#@A8PfDc1fK^U#_g$Iofb#|sxZH#ZDts5W)IiCKn zP|1YtS=%T%VBPQ?ZGP+G(Nwxo15dk?x6p<%Lf7hVkWMs<3s1i0SQ7?5X6az6ny)YW z27Cmi1&;F3@I%}Z%OPFHtTUrm`8YZuFd~`9e4v;Ijr)-9^$Z%cx`$4-SmKHJE>o{< zZ`1tW>-j7Wv38E%Rug_}r;V@ke95FJA3DZ2=sq2YCckme=+NHvbjPz4bR6pun*W7P z`#w!>=b7#Qih7TNS2UPZg^isY9!>cE*qrv%aZU1vtf+g)&9yrj{(jV@W;0k#7r@AukIF*IaWzSBe7szttj zMSYjbmT;mR@*TYzt0}~41At14&5T7H>*)Sf|8fp(vWH1 zRqHg|Dpx!U=?OjG`+D=ctet2;95g`c(X=~GbAmKOkN8QQxd&}j3-%Kpb;LY|iyQLq zIS)t*eS!uZrcxB282<0D3@X230|W;8DP7|5di_Y^s~bHr`E8gh!OxA~Q_)Gf^2~LJ5DC?h_2=_kybVT^si=pF|jxpVCq3Kpr<{>T>Yk9=hTXl=1D4-a6)zAvSZ|ypMrNlQ^3HI39ypa0Ls0q9&-##E?9mfOdrzV zcRG^8TsdyykV`%zmE*grRn)gO&nSZWHXu%Ky$#xtet&OPK*gMVj#1U@sk@AJ+rGkp zu zwD~=3D89ug#d#5KDdbg&^&>_1Q2eKz9nxOJ-alZ-#P8E+6jt&|b7VXLc_%3cqLQ72 zVF-eR_eMnOT1VfC)73wvNlw7_yn5Vt5T)>9jBFT9!)zqYcVP+P%Kcf|ZwD$uJTq8S z0b>>I5FjbHlb|IWgt7?^-S2OzS?3_*9i{*9GxU6p6lR8qhhi*q)hq|`O_5a)PF8T8 z;t|hIljl9U31tVPoRek;dkAlbaE7Rbm=dw#xN$3b76mfpr3c_LNp+X>WCq*K?6$xp zx5I5Q;Wa1Nidl9{JSkYD z?UDK0?-*d8GSd6#HWU`}nYGYNn#>lKqA>Xp3x&oPx*%OgzDU_V&_~nQg}|X%5cdNo zc?GhKY)qX8%S_xcP$^`E9#(5XjsAwNAa}+%J+MXVr*sF#%=`()ERVP!_zEX(KQ*cW zvMRzzW$4YKm)DaKW*f|Fj`<+@3uDSVNLJ2w*;r(PzPFigvp$w$j|drg0%FKroHZx9 z-#(0*;m3HTs2_b3yf&IxIvX)?2oyVQ!ufO|eC)gMEwJnatxLxWtud&hKJ=3_h=3w4FT6&2?$2sQ=Hh3oKVBTIC@R@PIYV z(djw>8IP+@Hi4Zm=IC;W!P2IN3G8Gum0o^=O5Y+Bx=~1IA}+HlFY~O8bOD?M8}=a^ zGWqjy%NvO(WXjdY5K{jhXd9T7sEKTG3*b0QxUXaT=RxejHNhiU6)bdhh&?vT5}ioY zwE-&?1F|#rSKnt0anrp3@M}#CgEv_ zS8j}0$0$j}zLy#lY;)Z6n6rxer&0*8Glq5C>9nHmMs4ZlNIT8x8F&h2g5zQ6>*i8| zvV}Q{(F>V+4Qm77(rAkIV^82jR)3Ho@w`$;UdOM`k_di^tj^wmf`soT8a30PA&M#{ zan%|{I>+=LqZ~-pEJ#F6>F~U$1J4kYK_u$em+^WCW$dH>7qO00h3FBiOP?!+T50qc zHqT+W9`Y#>XuRT?IS}>sJ&wHhE!;u)NxPX#UbjYwP=|V(ZWyN1ZlO8dbQ>)jA~h@* z#aUfeIs5O1Kn1X~Ptd36hb`367@LgR&8=AcsT?az5)kI7Kj6lKNDJ>93OA-n_=#si zjjod*=lZD>XdokgfrgD%P{`VgFNS-ZnSf9^L7bSb>OzrIOIgWmmP|L^r8I(SutOHl3ljcs=dZ_QNQUlq$s^SMGrn}TMtty zys=oJ3&moJ^2yGQfI9JGv_UwN{tRBtJ}-ZvB?U1eq2B`|_PfNgvtS*Xf#y#{zaPxY zg-bpt5q%=#c_jk6z=nA`cE&t&Z5b8kQg$&tiGqG|EOIDhMePv{(B`NjN=&6G(+j8S z4HSIP8T*pX+z2}wwmdZZW0s#b&!S7vBRzJQZl{y9eQB>M?GC=re&ol|K5wBP9Z?*m z?}yRSt);u&TkMO_i)Ad?CO++tCEpPCZKXj11!0Zb-Ep#Az2Z(!XF(&HdBMhzZ)rT; zM=!u3bPa?7e;!iPYxbHjdVVt?`ZU9z*HgioL-JvjOfX9gL%EpU>jl8Wyx>^UtVE@* z{T*B*EK(!cr^EGQFQ8(&E=SAwkP*?IfJ#QDW{hNId{@WIR5SWsn)|E+L&OaX65!*V zIvt-lOgRQwwNkIg(3r>xsNr{^5DHG$e$+yJ4qWb^l|j4sHa)G=D(Nk{^BrysNV5(j z(@G3niy$CnPq`8Xwqd#iLBuW|d`Q-~_{B=&{yJ^#KxBMDa3hc74(-cgDPi+4>@)cT zqUJAIupbgGNc8hU-V+3&#)tBs3Wu;;ur1N&W4E=vDe51^WEmgHXySsq8JC@L7Wo7n zy>0u{02l~<6Q^AcyfOV3(bXZeBpP#V|#-9gVi`B+wrF{-s}U0KeUA)X+R`pM7HkyHe?citgECu zV`(oIe|gjcigpMdh5*>2&hVf_rYTsu9ep2EPa1Y?$$I(K8JU0nuNrcCiT zx|`t^oi(_n_|9DAGa;GePk}Z783wcU1w;P1Jt)qWmtH4BW;9~Rf-(WCGWwZO{1^a0B_T^-}4kPU-dDJwAx z1Y+2*)ae6S#MN{>EH72po(pr6G<><8b$Q)r_=ffrUi@Kj%taqfreM@JI|l1nRFz-! z;T)Y#fxm#BQLb*=w`)X+5FOm>mO;9szC84mM+gy6E+bPmSH@VuV`r~+Yj2dE%=_)35QKt|o6s82BPjDV zr-}`?s5wxyqq)V`KXQPkLrM8UH?hMF^-7Hdt*j{|*9H%kudveru26X=-Xml{X}?tG zjD%u>Vhtl`JPtL0#h{rwfadI%2AbW`V1HpieNHzn8e8o_K6S%gj7C@s1LEcI4kB_s zcQw2Pcj=UFx)z*v8FD)sUzaRmiFO}d{|!1T_^_QmLr7`Xt7Y9~1l8l;wbwv$)LHNG zMvzow3*l8TZuIR0k#~Z09A%ghyGl<%8*=1IlnT`I5F$_s@{HH{qeg#uS7_7ltK7wghP+igc`{cJK%~aR1;0jv3SqoZw`XGlu@d=} zCw$l5#A?ia(G-yoKvHk!sts|@IS0QDLx{#4R)~|~3#5LkalCke&ml+~_GIE{a~WHg zj~C=6H}oLeoP;QjX_j_*KN~KgZ1@O+Dhm+*7Cj^49N#Z-U$#f3>|^^ztBGzg*Qlt) zVbcL2h{7vtTrXQhpp!^th{bebH;*kr(g{=kk=>1yGgomjm+NTe$Xq8-v%M1dNONLZ#PB|Ix!vR>C>pc%5jN6Uxs`l+`g%}%iYMmABfq6jVR zdB|K*Q~)=j{FEqiWP&d$=UNjTSPebTe^%8VuraRKhp&OCT2oh z0u-v%6vN2pSRHUCNrV+4y-L=&s>R|l+z+=O1TYsb`!EFgVGKf60zXDM`+1!Me#R+X7Ka;icwNW6r*z9w4kK`)u9vG0fsoW3J9R%+eSrE3)b-8VVW> zUoX=Sq#U#k!J0WWvXuNF?_z^y0<69dIdH*%c!{fAF=!&|aAe`Z3!tY8j({oiG^4k0 z$uQ3HOJIy;p3j&r&+REwVKLeO(Kr^ruLXe1(C+L&OJkiTg0AkA?O6A9#v_|6tSkSO|!hQ%tXo9>4 zZ!BBE1WL63FjNH>N>TwOqiEx8^i4cOCH+626}ONx;qOC{ihOz)z5_4D=st+D*`N;d z>7`w)N^J*%|C&rxm#?U&b>Q|c&JN#aaUJwcjFa!7+Pd>KXA`^NF8w7|HYU=Y;JRqC zB&FF~A-TAavOqW%45M&rjc4N2!#YO~w!VPx$mrVz2`qED2}?h?HT;!91qfddp(2Pe zNFN+?7*D z38j?L1<^ z435Bj=`_5h7m^aS^>(`aoepf^Nv2AAT%eQnYyOOEipDBIx$+Q@ifM^ei-gdj#&uaG z#>Jy(4P~>G}Z4n_^>!fcp zpn=xIc7Ol^$Y3^GJ)9adfzwPM`p>7uAjR+(qF{89lxZ3|k@)~3p}ui1=>NcGo?sbs zd{CAclQD&!hb(Sv%;CKRyheftu+bQj0d74K#uz~syeyVy$XF}6(hkXKogmg%R`2L;0rRAC;;-lBfC84obz-ewOsT)dz0vs%UGu@0e9fV zT`K)uC}ll#r|_a4o@j`jYFx~C2*Gp%8)|dmZjo*oH1n>EN^V$;7aa~0zyk^&j<7&9 zE9Iic=$oiwTth8h7;d<@SFj`vJ#f6lS7D_fE-Ob&5dNSwK=UMHRFV+{|W4hP0$ji`{p|8*+?zW&$(P2iT)5?k9%Ygh9!$2=mvPZ(=awLrveZ|-YbLZQqYNz_qqt=`b)6FD?!N;RUX{M zo6w!>NUoqUvZeRFXnLdi7V+kL%m55hSS;l|DjWSe<|Nh*Fkit-6rG%aU4t!GRMN9z zQaCndp=W|YA%C4?fv(5c^B}Vit!X}e6AUsAr+5k|VM z02@Q>F><2l2XDo+?UyarN8!RahUN`(dHyNI76Jf-lrMZ^4_gbsmMRz*`wG5s$f-Os zTzddB&#!M3T=J3 zIR`Cp{|gLA*kNk9Wr)-+yd}des+sRGJA|!*xe!>QTi&{8-fYM+hF6PCE1=XT zCzsO+>V)R{s`Lg6iwSzSl;q-wNpg5r)x=L!fL|Y=g_t%7MueRM`3s zOnE}oOuP`lFJx>bo`Fgl1M!G!X%JIMTTTeL$=}34=gtCLxkwp8I3!o)V`E;8n;^q*pvmVWc$wcT$$Pd(* z%7#&F(F5E?{|-NRLp|cF1r-)=8e{%82HnPlCnc|&ch|Zq6}Ju1J&I-L=)t1AorBVl zPFX6&1u_;2_K+#%!GWl+5Z;JHWu5Q1(+%;uM^=Deb|#!-S!3G}z5kb_5J zI8CqS%3g|0M4iZ0csCw_$&h=QRC3=_f@&T0p=TQ{!0?7l>>U<}@1rW$F*|~&1*)=z zR>+dZ2E_@dc#D8bi%}Eb4xx^GoR$B%f^tF0=c3{i7`XA?5rU%;w~f#&y#gbNN&xH( z{bL~uAb)b~3;1Fkcp}J3Kih+H4;xT1qY~peut5q-siZ8ylC6|4Wp$#`e8SarthZ>0 z=yN!iKuD@91z8p7$unM;Vmqw-9%9iD5iwZH0$T8{QZx1wfY&TZV?ESQPiK2mMrhyj_| zVjBOI+roUnw>@9*;FJ>73X~nz6D8z$grP0)>Z)eV4pZx+S+HQc5SGLchIxq73j#NA zQKMxKs>w+R8$g79qY*1mf{p-6Juwn9VDo_y|2IA17eXy6i}FHxGNgm9D5Pt7YYHyI z;wvgkmx3m4i?6IyTXaZ!UOQ_14;`a&gq)lgAp#k*6CP&)Hb8L;oG&1Zz;e;MSQS}~N_gr{@{5D#jNO61qjhXZ_ z`Ngv3%GMLNB)Op}0~3Gp1fGfymO-(&Tn4<5GloZc6$mepPPWw2=6y()aGheFv0tBA zB3yg8CN^??pYFi{NM3RHVi#@^{RbFlGi(QjRF^ed=rUk57tq-!X)mS{=66?nG1Hg_ zGP4P)AU!5Hh8>H*3t>Va7Z?DFH%5~eZl_V_)#pTo2PX@TtPtw|1}sBBiQV>suvjc1 z)yQ#BNKbMc6c_-2RL=n_2qDa+B%#q;a5fKXzj9CqYi1Ctogh?$jjGkbK|`tc)Om6# zc##a=+wuyqTt!ee!c9^(N~ z+!)|=odXuc{1qZ=W&+A!!jU?U!TVF$K7S!Y0SSK!37Dl8^i!}B5+dHf7~Pv7pX;%a zd?Rm=#gRs++W9A#@A3-jK@G^PjyEty*c8h$Azhn~8t#m_o34Xn-nZ0cxNvH+OvUMq zi!Q0?V0=M?10@%g=F$%^kH=~9R-A&wpaKI>%*6U#!<7f?DFqP=&PViD${@y^qOX#a z3MSoswH}JwMm!ZWem>ZMr9$5MBLmLzSV~Bae%h#>cdRj#3`-!+=D^Hz1{|G^1;aJh zh!}dXt`s4Xn-oObh3;R#Qby6&1;o4KiCT}vllrh3p*z4fVr<^|+?b47lPLxl%uKn@ z@f7&XWIeC#6OW*6ac`v~YT^I}9%&!yb8w^AP*a1Ia3nAp1i=-_Kd4@nk{X+!1;i0` zNK5A^*(#bZca>vW&`pA|02AZN7%USAcFT?u34Zn@^dw7b8;e3*y~qfzlOj_JL+|;u1%(#884=a|?@$>TIa9DF0l?z0hr@zliZTj)MC(M;`zbk&c*Gv9T4$;3=&PX^D zbpf!}q!s3S>bHz{e(B@QCgx4p!l6f>Uy-zpCjj^oQIW7EJZDkVpB$5m=gtHeQdiDSvnKx9NWLZ*nxED zL~N&VFmY7D>n17=cB?YWXNgiWH|PZWfKuIvlU}_vdzfZ$vT*!`5bikCQFYlz~j?kUQ(04aktdGHgA+RA+oFo7z}xJcng~6XZUTj-dHTlSNvO z>{Yp2Y95h9|BsqS#+<89JR?Urx8MP>uop;e$vj1>6(DF(Wy&Cr1q|~(D;U|9{;Jxu|5d)%08^-bG{sfXX>p5V8Rd z`VlOVdKQ@~p$c*rkLi}E3D{)Squ_FJ`?P$Rq|E4#x?mMTu09~gT1f*DHa00N;o#d& z>Cfv3C<@qs79*=-xS2=$(Bcw#wKPV6{|)P z95?7NAZ#$|py4>DkhvgMJ&T~=wW7^^O8HXFN@*op#aBDS2n5s$Y>{b&Cx}upO%)fxaDL`)Y!LMi=doM_ zVG3K(LRLcVhqZ!7QZs_!9IvmCl906S#HWLTR>*md0_XIZGjvZAU*1exl zP)G?c%D6RB$iaO$K+&KI0$13LKX>eIPVLQG9+Mt8KVv0qM0Z&?yWttB%b&R zNtsJNVTHNmL+e;ZouzQ?W_I`)80F_kud9gK>@)=YXFW8fPmsp?4)E3umckQt2-p=O zJ|_GID~&^wIpJ3*3f2pMr7c<5J!89qph;avKgtYA!QFt|L0Ghk#w1H~aym+DkFz|clcsNaKO zJjYHp%%AuI`VQi7b@%gq4!$-c3MP;FfglRtoSh#RB1(dS^5I~@04>m7CD)&^Nv{&JMV<}?MrA`{~S@S zfGw_uur?4$Zh<$NBT9Ha)Kx4c&JYY@VffB@ctxHEG_0bZBjveAg1v&B_I{iZCQB?1 zF`MB^coC+k57rBMP{W{&B`C&50rs|VdSLcn3<2|k=Co`s;&VSmT;?NI)8sWryGHCc5zZz*jYOpvNF1s1y@2oa2%u}SCpSlYy56yIoPp^ zSu6pBbOd1);O+Au69+lFw$P*^Y;fw$M^~gpxpDzd^uGiVc*9tEM$ah)h3!8;NHuCX zboXzT)B;~Qk|!G>zKUX~3b^A?`AZDI5N>^z1(?r3r5Y{mQHGER3w9S)x9iEJfH;5? zXQs&Y|EAq$9=EoAasVg%5U4AM(!(x(Oc&La`REH6H@IM23rIzu;Eo)K+E!cO(_oW0 zgAbw03AqNlphToAqAz&@jcjb*ki^-m4GB4j3y?@<1PVgdT3)&+ZIekB860J-yIm-b z&ZG;fj*PdYclfWX9flImKR^k0w*PVEizI8{t;@NwkYGiqD24eaCu{<;zGgWA$G}0i zpTL5Wij}{f;N%se_3!uzch%6myRg(Lh+AMM1KZ%TRo&4n3{1%IL@bm}679Lz&>|cV z#$Bl>6P2A{GE5**1NAQ`uSk^7^KK5_H}(&3@^1;sPW17)wF(O8+kx|FBuNO_{dLfWi;aE9oS|(foV?>(c^HEsONOd(ZZ2p$*5nTH zISb}o%XyPjI5Nn64>s~i-B|d}HnsvtJ5%x)vuei6NHFyV6MDJyYT`Vgy@5&q*H(CN}BjVjEyYjiQx( z049g!JWOLN2}TB?v~HnuuGO0eVHD=r1@}1w?<~hBHOGu@ux*s{Jn5(>E|54-{`9kh zu-z1jG|n|$GK!JkGb!h7b}n}E;RvX7tngEyQ_M?zvda~l-K18Kjf7%3O-KZN1C6uB zkcQDf1p^Rv@RjB`o5@B(a2KAAT#b`A`UH0_Ci!G#_Jl?~t|k{(vfxE=KZl4yOkiaL zBgUDf?C_S=bxo9IRT=(9D;0@Y>6^|KSNr7g@J_Vg^$bJS!3cOXP4oXQQPuiVvzmz1GLE z|C=UfBP4)f3B7_zj);*!xmNQ7w;IMNOxkV5X09VNCZtb??VF+o;e%Xo?Q%AhNb9=K z`wZsgVgsnlAlCfRekst&aKlP*DZfLf0h21k3@eV0?BO%(m?PazmmwC8@Ff_VCudjE z*N~ek4&_?tA{ih22o?jv?Ya8%G=U^$~Zq`3w{yDm}LSkOgevT@`y zdV+Y;E=UVOl&9aN$zXTi?)4sXPe{ZNve=G(I@kQ`;8eFS?M!*VbJW9LDpZpj76%hrQT=#((vLoD0uW(qrd6>Y|TNDd4>NfU#COYR zOF)@8%&?vr(p=*X$4I~VRK%S`-f#kfPX0W%p|kYf76ootu*1ie{38k_!ywY;Ke7f z#mVAA*6VJcfXxFbBay30A7&F#ogBh^K2c?&G=WV8Rg=6eRG_c+Xs-wD<@|p6xw14N zuKjD;i)sg+{(N4Q>;`o+m5+L)U+Ow*PQufFR9o>F7zh}dC_D-tdn8&GsF5c7yQ`N^ z;AeCHVKMhV=tQOwnj~m7Igz8-hR1~hR4fOFm&=NoBxbZV0aTs_ND+$CZN%rqaGrvX zkL|m0#a{c*jc!r=p^~|7NgNCfjR?CiCBr9FBH6g#qsBjo4ZgvR+U%o=pFjZMqwj?m z%clGUORJ=(USk_sHI6nFn%1{*W*ZgJ4qk;2NtdEP44LeWV6Bc(?oyrBmq|eB+HpLX z0iB~caa1D&L(Til(C5K!rA?3oco&PC|De~o{-%GZx3~pyp=nZ~JG3!EY-4*xopsbK z^iEHyES!xh4k$!AChS5jI3as~)iHU_oGuYt0o+{TFoFz588YycUHp+HaU{QU>NB+}4d#i*C^Z`y{kgXQ0}4N+Ml_eo`W zP6qrt9D_>4I`a9DV(JV39*EEr1a9>)?4<03bA4-B(3FKKLX=xa(hWxfODNv}5!d7| z{v7t2NX3Z*Tqd#j43qr|97iWc1eBmi6s$pVnZ<=--yRL71`u7@L~v;*Y`1zS5p_!(^!vPc-{13JY{1DQ zuF{_)XZ@|iIsMdvzqZ4FC#J2K*q9fFc!s0C#i|to)kkf)3D70w&w-Gqu+OdOC+vF{ zq{D%5DDm+3BHRnWi5Q_#U>qIRUvXv{OZHq~3hB?qvl~~zYYybYKkPHS1j7`YTM`Em zO@^%!LkcCZo2CfyhP@tO$1K(dTcV5J;*SJA<8O5!o&H0gaAZB3_1PiIxYZTS0)jid zQB3mXL4xlDxe+;pz5U#u=58VMJ9zv1xV>E}-9k?>wMt=`AS~Q4$8hmH{8MRvGe9@)u)u0z z9{A6}L?p;Wdy*Mq%_PDFrPjt35?(I;n<$Md%)HL7U6@#7$Ap3>WC1&T;!{)?l@$R6&dsoewEp3w>M z3iT;x_P6N6Pa&Jc^MlIoPLwiQX+l4H14M;B{~@*l;}53Do+?NQ_wgYpl{--%aMM=O zBIMwj_n=JPi3s5?y<56hQZ7z~XgwEq=xj-o1vMt@o>(&coHx3i2R_-D&0c)6F>H%i z2WV!YvC1Fe(=TwY4DW=h*{wMK(y=X^4{BT*P2#3jHjWsT$nV=l+~@alnDoMLl&~Bh zL#Zeh?0ssR02y?p#Qe8g?66U#` z9awIO{a$4_*Ap1Kjj~1%Rt#!@zI~XZ<$Ncp6b^?>x8LF@N}ZEkGi>LwKR2}pV*h!2 z=5sX%AO72apS4*Ag-1`h= zEbZ^Cj#vk^dAFnw^ygRifm2i6++`qSEXFm8;$gZ^tUJ@-4g^&hDu zgtIBT)8p#n=7Oc~8r3x8;j7TXX)^949LY4`^H`PR#Z~y}76**+_t5v6>34L)!Z7x2 z9I+MO+p&H`o?-78*HDY2Hh1a#0SDD@V@6Q*f842)pI67$gwc7s>T9vm=j{z6fz=1q z|7sI=T#X#G=`c{TDWiuz(gTP5nJ#sZ=EnDHfv@V9YGHrpn1=W|l*dVDprSYe@#F#d z_n6@%9%u|*F+R4Y)A~I<5XJ5JBQu<#Q_uR2KqI)~Yq1SSd%aJB>b*nXag4)>vBulH zsi#r~Y#2YM%VJh9_DCE7&3&K8s?~vm2}8Z7*E@}}-oQ}9tgoI6Sy$ZBo!>+6&_NhK z4||gJ9Qxs_=YaL*bz@9b>cW$p6Gg~;PDN*yn2JPVZ#S1w`cFM(KNU=vS!-b zTVthr&ouvnCVuetuS)geNJseEsf{rY{s?Smc=>X}Z|^!63C|cDyl2 z_KM{-}{&sx^sO=#x|83%-?yS ztt4`t(K4?**$Fze!Eq1Uy>?-GvN`r1+8174SUQp(a+(etIFNp(JTR_K9pCuFDq)W*K?zO`M6`K$se~hFW;H9xME`O^V4SrpZ}$LWS#CU@fuCKZKsEx3`MT< z#+&Oi29=gs?@mtNdTZo5r}xy!pjTbt`_yuls1N9y9?!eJ(np;3stMi~>BdLrstxgL zipRCQyyW|Nhs~K@-xksFpI;nfl>DEBXVzYg0-mG9@dTpTVK&aeTJVx1VjhE;CI=4HtAf@17 zmc1+T{k)UE2$%V{#y$>Pv_5rA-ka$)-dQy0hs{0}DZBS$&%C*@hLWm^L9rLN&NO~q zkfFwv=3Zyq-ZJmSAp9_GO{M9{X^YR+ZEF94(ekUd!+!g_6FtdlYH0m!$b!+T60u1YLGKv+Qs$a9lP%pLgHWsxwkLH{T&Dk=m_mPq{ zGc0}jOwzVr)EtSbHt!&h<8&@JJvns9`vHZ|7}M!w{gPt;Ok+vLyxxt=BQ+HTk4KVJ zZf`?$(~9rgb#}q_Na4=eF-wtPZUfA~6tisf~U8mOsi_NkAxdjEWt-EOZ{PV?G{)Y|w!f2z-( z`;Gi@%eo6+%}8ml`#wdKdjLMzj8_es96I z%w0X{WoGj`XCFSk|I;0(N~$tmZ-3eUY1!fzXtq7=xTn(GvEf^Frl)x9r03hV)n?q8 zbGm*3rP%!+SWlA7X{k4t7{ zMrn$MI$u*GMa3QWYq?;VQJRwLRHme;<4!L4B&4V)xB&{vs3-^nj4%w$_T2M+?tK`R z`u^Vc{VRiEp8MQ;?&o~Y=bUrzkXSy)ZtE3f8Z!OWyp)quSYaJ5hf!%3DN)7Do~V@# z^p;wgUazoB28OZ_(Gl^eE< zlSu<^o;=WP)}lF=TetA*G2z6*YpsWcZVs@XxEpQxarElkoK=Y*?wqu!{ZY2aex-cf zK8yF~-@`8@8}3Dio;nt?V(Zpf5#6Vh4UGFLCUst9sTLD8nvd)`&@gYNIV9UJWzn26 zckjXz)1o57ujF5HnSb}xGlmbcygiqfr4?UV|4XD6ICJcuCv5%m)34`--p-G^soc;W znpBv6DL1vqJM8$rF_Q!C2Ssf^Q5=6N+d~1SLlJC_b6`Yt>&wh+Fj#s%T*^F7R)j;J zS8&_UeB%y=lgbYAs5X1ZS*Q0FzL3n*cko8t+)+*Ie0Pc6gFOPrfx#ZR=(GE>nkh%2-mFrMXKzwR0-k-5q)5G&GZnPym%-%A_@X zmDSMZH|nvSzAvH4R?V;Sf6hQy9?(3^)Ps^|a?qubtiT%(PhUNku8zxLJNSWeDEF64 zt7z@3=;CNJP21r#7U0xs|K-nV>z&5i-T@$8_q70*n!t^XKGBYNjPodh2lm4k@#wNR zoU;86dy8k}(M*qOQ^hBQ4mFfv@K?F1%v?lY`@TOE8u)LZQ>{wbcX%O3UJCt0Avhl6 zj(bQRyKJd2E>Cm^Pt}a;?;x^l)Lan4Z)x2sciX=mF?U$(TjJoWHUrozJlai1sngQ3 z0XghdI##ANY_k)`oep#u*J23M1Um!!c?bH3`7LmlG=rJ0puxuxX{Gb1Ww@`rubEs% zJivbkl&%3Q3ZgOuJsOFchg6RtVT=~mm1q3!M6liW9eUr*cFNyTjJxgK`w(mnA`k`T zs!(zW?_1(Ai2)*<0iAoN%=EjYbK;qxbAR%wnh7lUH+so|cw2vDCor-!Qwr@so@s?O zHJ4r=MU5gI;kTSdBYhG=7aqIBR!g#sKc^tafHRj2MM$yu37T5WPP4~;6ZG{p@Yp-< zM9m0QU;Kqz$x$$#eVTfhI=w##(UsA0X(uWZF#wUCK7t%1#9rr)e-u zWuy4-?Y(?pR~~pCWvz0wnz9fxW%aAT(LVZHRp4w`@oW#$jN;iPYJyw&;SYYp zW716T!6s|Lk|-3eHFKj+(*seGw>)l#lkBK9hgz zQU+Sp=FP0sZ6t+yqh5klYKX#Wyz)VUq%O=%#0@JSOEcK$H#uKCz|EGf;0SYO;WDF7 z*%S&tj}}F15D*9p-(0)yR?(N!&Z<17uL#06ytLOKU;4WIZ$n2wTllXulj{&dVg$HkUE4bDGBhi$G6pnl{@PWtWvaf+8DG2a_en@mjuQ^Zc zj*C4D8{I*nIS?qUey6CQ4JzdPfHOED^uAh({UBn%kZm55+%^#ul8Lje_9(MxpgRx| z?Fz(5;b*8bfHcjNMZqbo-ZxgLZe1#ob$1~KFLquhT7tKU;L+LC8&-T8 zcX+5Y!ke^hdga!;28mLlnp?oZ4X?qYtf|I>pie07vYc8gP0XXO<(@w-_IzZXI-mM= z-NouB(Yl4=R57?pJoqiR!VFUZjo2=6_j~>!rFKk1mg;|_P8kE1!sbqU{lw1a#t^6~ z!V`vBQS&J<;k7h~q52;D->Aco<9>ZGJc0Ns|9o6`;3r%_70ipNz}ByX)e->#!iW6- zM;$CV?htwO@ifHkv2V+5=3p?GM0ea&&GIItI>q9>DiUS_hqC~DtVuWb5)IJYu=)Q& z9UM`m1Ku_}>;0QM$H7ile=T;WX58$CQ2v#~+E{2In0G654KeRl0vJR(j3-Of?$WgM z^@d&PkG9~^Sn!3^r%}GrpIS&~g10UZ>k?1-P=wuB)?l~51=x9Hg%KZtscP&D?L{)N zmXDhOI4nSBHVn!Z%YoEl32=uU~QDB&c%QJKPFD7#%(@vUC^WfoaFvm5hYC>P7^n{bP|N= z+JN)g{DIn^YL<@GNH-qbQ*dH2ib}K%D?)8bhUqB1tVNfzKJdEfw5@^?AXEvG)ky-D z6vjZle&gZWun6KaX(`kImXJqtfUQO-qUgJF z$J+@M3%g4guVD|!qi_;ddKT99n|p?bP1XY68_6b;c{eJ61r6Bwskj44pQZ^=Q&7rQ@O;2oX;9BnJ9vruFeC@E-o|KP0&t$2`hzHW2Z-&b31I(}q4lJ4 zhyl{k!2RyUDu2p~q2r~#gw0o>0C(RJMEESVq9yw5cunWT?EDLM0&dr4JM#5vVtpII z@bFAktbf(k@0^PcH{m1);=~v1OMxgl_tW>KTL8*i^n^6S;FfX&3OXXDT@s>ZR?Gep zwHL+iDxw4sEoh{mcA&oHG?N=(eg7q_Qy=}|B?dt+sf7dH7}*>VDTsA7mubR_$B~~+ z1p|iv^w1CJ)({TAlIKef45=A3j|WMbcin5+mZxC$gW+LbUx-whTy{yEK@CE%m%is; zQV{e{?Eh&nCSg=Ix>M;2eEUC4)JF->6L=#Y&BpSE?@7n&BM{55+3;Wr*9i}|oTg{M zv|2t#VS{lFn_#w=VPG|IXN{&@pimubvC4ABvC0AvTgdPQJf=IEXLl+ssGZ;t8K!S_ z0FnVriQJV^4qqUge+{sexRXvZ{-n?!?=VT+@ctl{!hMNoMt^DLF}(CA5}IlfJsGB4 zcUsP&nOuf*U~vLRxH=QmPtNxHC6K}OU`Ff>M~sKHs$5Xu?$nRz=+EQ0@wN;lo-9$I z#e=z)C>DBVdRfC90ZhyFs8T@-4X`Sk4YVqK1anv4$9Ysnv5~w1r&wc;0@jT>!5$PX z-PCo&h?0e7sFPO-tAyeAqsYq@!f0-|RHVQKGvns-^ia25tlL?yVpZU{Afi7>Z)`?r zB_WSO5#FA3v3uw6hlnh0z|3Bdn7LbHIyZw9?hV2?B)5A*=g}NHUA&0~`U$JVj)?t~ zV*cOp=F#uzjUj}Tjt@g~y)7i{8P~|b5=2K6{}f(ZvWOZt^woVahr~$s%R3?%_{1Ic+Uf>vlh%+L{|4n zm>+yDmb>PLKTn?n#e9)fY7yF45gFj&NKdFZkqG3@!DhivRQkRD4LIu395$!`K{IH9 z2;t|+AgMy9)R)8wMU@^OL|NjjctofTeCi)GrycyeAUSGBC<%haOEM|Kd?7{%XLxLw znAAyR)1f9rr#J}u5T)Ix30{-5+yjtAp40GTbo~J6z^DOTI>HMUb(>cqydGd3NB+f6 zES8v0om*kdlG!GB3~&KQDXv5jVUL6yo!Hf+IB*~}+3Z!S1b4)D^0B~={|Pm%vKdlI zf}pf2P#xkegpJAg9rT4;)|S*pSOaeS(3zd^Z%A|hJF47IF&Zw_lVF1gt!lo(rG12U ztt7NFJaieTBT1z|9Z5UZ+(Fwjwz^bS1U^H{x=YVWQ@-d@?uTm)6A@2G=CH{IYzC7) z07q@teuW2#X!=jMrT!~~gm6hmL-iS7)QpkuR7N9bsmlY%!AUYT9Ccwb+~k%+ZUJ?m z0hVggy~G`O>Mc7Vl_+@Pz!HOpy$M^rgMcyynZj=FP9^H^Dg+JWFu5sTOX8L$Qbh|R z394E^zA8c=v8S49CY{|Kr5O_tZwX$Glf$sffyS?$qOwXBT;w&v)s%T7@Bmnj%a%=# zHM1H&>Ii}xBtGq8`5IF0`YMKOlWG`n#v8u2Km-98iU*lie?g@+^FiFREyO$-Y|9N@ zg*0T4_7&<;b+p6jx!8`CV>L((&nM*|tZOC1x&}#908r$Du)D#zC+Anv-Pj?*4Nfl$ zy~AdGi-5P1=SX*d!(%(g<+@i`^cSr&piOq z<=bby>SeERB=CH1QGNXC1`QF?#h_W0+utps(MjI$_2o>u%*F`xfVKdiGF{}Wg{owdTM>H|yDHHg2%eTouZ4M3uw#)2cL=%+o{0!j zYC8w{#x^2pYm{y$sY+FXCiuN_5Z>QLR8BIiZ)G2Ay}@pyomaRKp}sDyPvh zz+#VN&`^+kL=gYph6jD(PB8=+xH~*oB!@*HbO+jp0Nu}g3=b^c$KJqPgnl5178uF@ zj<4Q$jzSQ)OQqANWr5vI0+I|sA7G5#q=S8b5Fo)dK1VseSdmlkztW%2L~G8ctUV7r zPEu`sjR#(3Rx!=u;S%bxy)?C*)Liqc6|LRC0iol8J%5WJwUTE^xl2E zWUE|_Uj;h9gy(DpL0W;H@PBh1pQr^!fYrX{Qtnb02-MTGU+wIo>flj`D^hQ{)iGSq zcIj_W0a_hlg6WA;Q5n&Lb4#)X)&R9nz>q|?RNV_!sj7vzdsys&r_vF`>jG5-D6P;D zp?Mg5j-fKN?S6_D2paM~Vwx)$k<{}bv{eBw99=FGyc%B2DTE=&d4l2!QwtF$Af9-Z zT1cJFhr8hHr~m+gx*+}wk~hA?1+UP+1wKKjzXs^tqdZBmu}_MK2~xSx@`m0P@th%^ zh6-J*AoV7F;8BGPhxpWPLhuf$=1C+egm_j=Bc%)va-&&huUew4knSi)qA!4RIuFo+vm3RzyO*cE zWXG3R&c+5hJX5SNl!E1MMJV{DZ>XtE0Z8;cN9{#4Qh-xc3t<^TVCh^bum(8T3|#Xp z9Q*;z*z%5`o2{U<$nD?#0!ne~!)WyoQUtiwkrrx1V2IBm%!l)Fsls#DP_@7!xqq2qrA zM*Jkie)uzy!KfKuVh=2&v50m~X_XlS8RgVeS@bAN#PkxcC6w!mw!@$s*=GSa!!E&^_B9dK7r zFsCfSlIXmb`$2z_04)5CFuKmjcKKAr76p{ECY+&|rL*msy5}p{_z-BkEAnYd^S^p( z9&Sob0K7e?CCyvh+{#AGp?+tsuuTomTv5$5dIN&8tF(E_;<@e$mtn0YBCM@0!_Zif zCSBq(%)+9heCk;LItR)O1-MN_jCv;x_%VgaeU(o?mKh-v|6Ru78r^z^!pU#>&)oKO z-Sbz}a&Yzx#5s`MUL1hC6rw7`CVm+eT@{q>RQi3$I`Rw;eK8*XQt18B*$fGtac8a= zR!~#-MoN0@s^K_d9q5fh1w9JkiRH0QNK@PZw1F)A%>OG~J$i+)YosRefXjh*^03Qn zycXD3JR;i5L?H4Zdy@y=)x)zO2xQ!H6xZ05g{II@sA0TC!ZMV86^|)NNn<%UAs1rQ zB?y@7bJg{93UJq*lCM%4M*TfM<1%KV+VXehI=w7fg&V%}DceJ#1vKnWu_`fc_O#HK z?!!0=J#+{qYQKrBR!EKl9Cb41zUJCbXZ2!&Q?i%quK>2R1JWWd?hqvB<>x3CVg}N4lH`0QcSVuN&q7auF+sk9 zno=h6vz7D`8nfX9`lP{fK-&)?KPz8ZD0hL_#}g^Yo#B%<2RW(|gKKp)jYsLJV6Oq8 z4l?AoWgN5%odyE9AI(GelTfteHuCo{k?sW4{{aWm7{Od+$~3Vu^Nw&N(;Y5?9&YRg zT}|YugMB&bvxKS$AUFm&Ym5|d;bmNAsd8IZp(`s=W=;@bdxP{4VFk&(7V2RI)N*oWZA&tuXlt|pmT%{noSb&<90~I2gU=K?NgUU}y zQfBQGMWFJ%eM%lel^U_Fg%FMIQ5N`8`SSIlE(#tZA3Fj?BT_5X(=b=jcp_3daBPzG zqafieED0XmEQ#Fis7zmqPIs(Gke-7o)Xm+tMD4>o47(m`h8#Hv!Qi8naWy8Vl3xme zWs+WtkYPZAP72oGmzpO$3mAYs20bT}z|m#GSO&G%<%%O=ymCUW+;$L+ohBRuDgDy= zJK%+SDEU4l3BNYKql`Obdxg;|sS9q51V@vZ54c9DSYmPaAbiFHIL;#lKSX}EoTp04 z*jeKiVeXO(Nbo9g+2mdY!34Mem8TXjjL2Nr!S-w&_!KjRT{R(k>+vuglKF}kHTI}9 zHcYNtnofWe5dR;x(R+>Ge3yg>e}!(gU);7VU?LdY7|n9KUe^Sn;r{o`MOM~e>UUg( zFF$bGGj-0}X(11~?NRy-7rUYY^)>-bTDm)V=oh*S43iH`axyDx+1IU(t@CCOWkLrU zj+=3V=TiN%7Y#>gC=$!{+|i;&nuWav_x_&nZ+SF}w!!6IG<-{GJ9q|yse$ly8CIEi z_?h1o)jgTWMT+l2Zn}t0qRe+Dl2RMtcP^X0BZtEYt^7+~PJu(H$r9;2l7r)1lD}@mjEXTe|y+(jIPTQdett7}18|{r6BW6pUaIgtQ;~ z505SYp=-InY``6c2o6Z`cbUJ9Eh|w_2>w7z#U5-asvhLq;17i!laABpg$y_DzMqcg zecfwH)RP1ax+-}x9H;=jp`+kWz_)tt3dBCN<)oGhF%sjJX-8D1Ljja{dQ}E5dWnbl zUQ`lbj&t4i)Y)BGwLwzepIeVdo{YRj7=)R>{iF)bj|1PE2LP`;Xt$sK~)|_yeUmt^wiA*ydo+Xp8!m4D_HQj)u zD;|KQM$#278E)Odw!u1NFTg!|3tmnR9g;?k%J}Uo=nw)bd`L517Ik*=t9|bct>o`A z(=W30e>f}va+NePOas2ZL=_zXqBdS;Jj8p;f4s*I@&FfIcKhLbpAf4u7UldIfX_&M z)lOOD2CFxo55}g^4Cy=(yM^u;}r0W8B zA(W6Yz*ob07(vp{UDYGed6EzlN zkpFo6qWbI|w)G9veNNz6Q11G^M~~#vA>C5{rolv?;W*uGN^@#eR)N$ynnWt#q+wLj zhxe0pX8L>&CdIC_#B?|yhIhg?ONZofK?ec2abI;@BWu(>dJ<7O+Br&@&^qdB)>m_B zDEyh+gXv7zS~<>|XaQq@Fs~cq4WSFmO$donZX>~UCBz`!8ZHPRLT>chNTpLgO&3(s zNeHlySdrigmVhbM=z3BD9V9}23?Dr=L5P~hiK;f_d*4~7=X*PdEy#uNwO1&pZoRQ( zJxcN9b747SL^0z&loJYf6TXWcek337jnx<7*#8YZ>N_BD_q+lkhKRK1Ki(KY0w!8k z;^4s|(F`;$!dYATcdkugc%LX8Z7_{@*fIxuL87b>U!`%DvS*?6V7@@z*kjViVE*cA zA(b8ueK%~+@u~-leOEQrV8_tDYb~+9?LM81 zMxlPs5AIVw51{i@E2+P_EP@CEbZ}v*c&B`qXnv~lZ9D*42uAHO!J?&egIp~aQ!v1q zkRuu8SrO?C{z->XZ-5VL6E!tjns5|UXW56uy8KP=hAeIl&4?nv1JE-xl^ftNzNFO4 zSYHWyFk2mSAvegG1FZRGPD0u|nhXS#CZ5aQ1mNRX31o$INCdP>-Y}2qKVtREBb=xN zU=mGderP&N1-D1B7zQKZdko(wUl0+=HkehuUpZ0$CVka&S(~LIiG%e50Y z%xsr}0}VvVy&t;i0Y&Zf)%L2W9hHdx2B?o{Jj?M0FK>c|Hp_VAxS_!g?QqJgAWMRH zF9%)ieWbTq_bLxV)W43u=MBg=Vr-wgmsF_pR)}F@ohwwKK*GR^nN%PVJm;_pWR_iM zk#;=gjC{j=Wuhb`=rlb{Hcvo5ISV+>X{jTrm?3M{M}C9&2bdqqdL-TfBhz+JEP!!2 zzw1>eZsUzcxR==J13(2D@NS3*q^1dmA{VI}wps*KNk>ND1}L%gDw8xozwmsUX_??T zpp@_i9}H)&Q_P#ZAUBdT$=moz#2Oc-V{REO> zY?KSwEtwW_KfqNmBMG^(I9uma044bg$a_sdZ$!zfjO*;83KH%}=A3sy(HbQgo-8SB zbl(`%fy_drlSqfECDCMuz+3OaL;dpq1RUfHq|v-ZG3A(PYZNM49hMiw29&g?((5N6 znIsKGXkp^fDC-dob>4^^hMnIEH7NV>8|iX4OXIvw2ihYN6D~LO9$dO4T3CQupaT~y zS5#QtF6C)zw@Y$)6nY3&B}nE60CBlL3h3rD5;>$0QRT5E#~TL50h6x=JV5O(lsm}X zFUp$ma9O|z+qdZ~Z$9F~76>blZ9+Qh{{|lTYAhzojU}&7M!}M@4h1;E!6<8ZJ39ln z7VVGkl_=FC5LgZ;1KL#!ey}F;?I9q@wogo5<+`?zpr-RMDFa9cJAMO&AView^AlZx zNrIJB&}g@0T$z-Gjk%b&gLJi%rfX;j5CSZ6d)V2shPxK*mcV!fa*9$|JYDA1W%OcG zS3$!Oe9wZ$d)?WHY>4iL#Os4_A&rRz+JqAnf`mow$Y&wOB|9|2RLqVkA45GaEzw*t?H52}PKShWRjm6vq zS@()3T-5RZj_R5#uJFeMK@oW`?03QaPWe_Ifk})=w+nA23oB*Jl!+=b-Hj=_8-oH+ z$pIl*iid;qNmQ;89B6)kyjg%eRrD12x+MIvS#Z68e2b_hmC=MvJp^n4&!8DwYvB%ElBqlQSS0{PtPlezRY zP}ad(<`U!|U>{8IqY}ZM1U=mer4(_lj4$1Y$xp%#9~Tvu7jP+Mhq0*&R4yyUc8q!7_KY)BC?x9$y*w)%x#NTJxlUav zf^kXuuQy>=?FW>7Afmw2Q)wSMm-?}pJjx*e7;$D519G!KNH8++@-arZHNpD?LtG7S zSthvNKSLh~X_cXecy@K*RZU^>+CX5D`j8Aj{6oUvYAMiRhl4VrOjx*|PWPxiioo!> zd+Zf0IG0|0s7$c_@!t~Ch}buxs!9YuRY(jH<}y}}Kn7W2L(0jgl|Cv2O}J(#jPkBV z!uy^ZD$~n8D3VAlpa>x}o&YF9=|x>Fs|^p#tamrx7$YuT5#b!#S!8&H>Takw5|G56 z5bfY7+pCNpS5~2UW&DMN1+WSUF64qB?dVxq0dG9jts99b>U~_S{XVo{i6;0cO#vX) zY6*v=RtpJTCh_i&M-74cQ+`}x!(&~o5*e)}I;gDWVZL?@Bf6kt$DL3r&G0O?dL#5`&z=#f~7 zsaP5%3zj&iVS)jVZEs6&SA^! z7SO!VJIryBE=e1B5sf95IZ}hT1u`X~a3^Xu#9k|t|HTs=Y@ifn5b*657!`!d!WI3z#>%BAcx8H?<*e=%SRg2k}6sYnX)AtYWR^r*!9r5?C_HtLOQK%#!gBK;=QJ>d5 zo2^OgL`k0GP!>DkiavEV!|Fgse=8$pvA5ltEsAS-^Me8{M*^PqQ{ zSsllX{JXnatA^=pXhhheFfDK+586Y?c`^Qe>Zk<~ZYR$lU50Z0j^QJvw>OJe$6MrlZx^*ho=5{>Z>nrzP{vZ39 z{xWY=t=aRv4|P$RDmUgkom-=+;6bEqbPpG!{U<^e>~od;XSsU&LeyI0q@S|1eFZBo z1kS2RDhTLew3R0nzdb*FVM{~&p{XY(xh->w+vT4qu(D&b7B2LxykdO5SC9FJwTw-@ z-uB!#^vXPR`NZojs7Ngu`Q@=*gNwBH-d=DwC+KOKW6fVWg)~1I}1_g()Mv5AJ4N8L-mh_mK@3Am!h=zQjM(u<+QNskWF4HtX+{ zd?AR`q&P#*1&8O9J+Pt0c4m(c{mam1ZtS_>c-Q$;Gque@UD)v}1y@+1>K7E0xTd1`2qbqjbGf7P zymWTnzE9?>q)sbJrP&&4+ zy>fbBl-XqGn=iM><5tc5^jxcH4%sr;kc|}iOXVNAY3}MYinLSFIWXYOoW8!nG)j9h zT${nw*GJJqHD5|I2E0L`$0#gqin!<6*emeF3C$4_xVZ5FimyBJ<a*G}{}vfIafK!_SF!)QzWW&qlg;z(s12PHiy3<+P~* z25qN%=Nv&bM*Mg$cz07juA-dtZEoSFPHiw=7iCk+GO8S~67+cm!xzVpaq=m$7JqQd74%>jnP%4CTmRyRXGT$UF-3Zj%&9dK z7hUR!*)gvtMb+t5i2H4`(c>9Mfr;O{)cDNr>uhOw-OB!M@PbWKTu4rJxQ|7ZZ^O1c zltQJ&lW|H8{8qv+E&RHRvM@V-b8&NO>U-JhwEt?+u|r+6Wols0PsEJbJUCwSl$ZZ; zC_Bt#-BDz37`nPsIWpy2@eQNV@sTv*hdADif)DLs_0Z=Vgkta>IOWRH@pKuAJqFI)CV3P|<^Vr$lG;tnf45w9l*V2&^<{!333GJ8d_V*f9 zZbh5oLzUlpY$_?dV7i^o*=;Nt_Xknr)IF4O+B55eEG^$ zG1eIF8+&Qs&={u~{H;fUGUYmr?Blu<^eCv_u}%jFZyP?lL}Z7)%#VBx{To{AkAyJ)ch7Q@m=F6So5me z@YE0&o8XRn>aPRBj<03@d|@gwT?d}4Zra*x)56jr{5 z@xNqfT{p$fX4&X9&5-aBg*JFFNm!YU3a%pki2W=k4nrs=Ygoj&>E1>^B=YdNQ+Vhl zk2;tl_m1TQ%!k|d&h1m~HjJrrz-!!`3!;-+^>>AI>P>1bq{P&{L+O(ycDz`}Cy*CR zHvM><<@`Wl1##)BW_)4Md~O@GCc3C-^vG`E71_JfMteT(P@cb})BC|cf2Wy>X#aHb zzh;FQb!-ek$iqJpd{1du0j)jxO}YRw@V1y_v2mZ^0T)<1sI9)GZCpWX9L~EcJzm1n zj(ANS?~#*7!ph>LmC+Y4hK63_XXL<%KfbTVi%;Mlm`!{Kic6)@b1AfIFolTs;DK#1 zkP@C@rj&<|@<*g0n|Q!pGLGh!EN=FoO5-Hvv_icu_e7|sEU7e$);B1i6WN+l^c{6K z_Zt&Q2RxSVfci_xnt@K50N)2k{YjR39`$!_jNK_F;1imb%meJ={amb{H^UX)2-`>O zvliEAJ^qf`q3^ZkJbjQ?y~|E&rUL4C6^UO42&y)=jeTn@wYc=M;zwz1*9vH8^gy&< z94wh@L(eHMUo~Ygm1RL&2 zaRr*mZhB_6ThYHyT_ApB%<&j}pTtX>%{O07E@|7lnMb`hj0cU%q?Kcmyiubk4_JJD zNufhYsPlyjr7Urmsf}+>rfAH*xqU&}o1~R1O-b8=>m`2Mlf6asP$q-f1(%ijJ9Jhsk{W=B3FV^+M!#4)tM; z#iQ}2PYo|>_2zlmvFW@AU^1N45s!_gjfKkJRN-QW?ChBu9tL0hH^q2qt?no^Lug+l z8FmdR^}jO_@*_@2qTtU!| z;X1vv{;|&}?k{edrSgplJhf3xf1d|;e#ND}wwwB0yG`NOX-2PcyVxt_znhMBCcl3@ z{n%@7(<9|>W@lgYnWK$$DLbH{rx6Ho_dioPNlny(I_rI=B0NhcUqj=C*5sWUl%!4^#lq zokrfG3w1WsZE1y{{&))oxu9-$tl?9~ZK1_vo<}xU>fQ|6Sof{QeXVR^(MKb`H`MK! zKmoz&1c1dmcz}c07|wN8CYBxhKWb>`)I3Qc2Mb z(ilIT*Z1wPW#y1yBT-mb?p6-4P)w_u!sEwL@OIQKC_We4xCl2#MZhsUPod>`A2!+z z0Cn9>9azo=*=S;pT4VPk<2p3U!$Q`>C)7aHFEs;efc)O8C=&9k@wI0>#*L-$OiTCT zj=CXPUiHWi`*5zh+T|Wn$5r6_D}aJcKBfczdD__Ewgb7m-Ge!LYJA?auSdB<(0XHm zqESdXhQG2jo!&sqyZMfa9vPpf`;rF0H_0NI*-ka2oUQk3X+`x%y2waW0S~4ng$}g? z;9*{J)B`UZ=lh(9e| zJJjd9ZgD>+s_r0YijlSb>%a>Kc}7O@PxqY7Uzp30hk6=4RK9neNrtg?kPvz!uAGi~ znidO_Vr4L?aWE;G{xfMEJ>jk`R%PdJ?Gd#N+BZ{s!dvdOY&7hAHzaZ5;q(Xh@&>Qk zdp<34%8)BbI}vYzixUudmUIX- z0RmsVK>PVW(0D*LdF;r}HC*1>Mw>HpDRtR*4!?WkPpWiUBI42`sdQJWiw>ii8*cRi znRF|Rj>nllPb}dzKNjUA?hQvxw-_~<#Hbq=(g=KG$A7|_zZZRf!N?vZG$WSGP4+fp zwN5T&iNN3b|3bhlRA(S?0jz!fz@1de26J5WWT-v0hVx_;AFGLe*97`ia8o+kv;U2L zKU8qF8(H_G2=dPoN0Av}T?Dn-eSy|D9${tU9=`YtfekIG5h1Of%g1uHv~niaH;^EB zafO!-;{c|bDQhQ#OLH&O+5I1cp~A2GW%j)Z!CM*TC%WGokN)T!p5nW*iQ zI&)pL(XQ?}PodYqxq|0kiY;n#EB2%RYJm~q>LofbH`Sru+xc3`O^RJb;V6J<4(>>U z)~K#i=7u-8`KY$?CN~GL4iWvx`d&ZEI#e{mqgBP}6XA%5dp=IT8&@2siuMS%ULO4wHL2usGqSc`b+Q#}Y5${vc6kWicMQ5~+ zLLMaJI%*eZRgPM=Q@`Ps1w*y?l0`D&&e!%l-O_40i}bfTTKZ}|xWRbxC^H=c`iLU> z6q~qhV)M~7oEtahQUN_y{mpGT&Z}v6rWr+y(LW^}b-+-Gmp(Fu;6cYrKzpz$53>Dc4YE)P3vR9}ZDlI~zhR!1NC1 zQhK7-(zsKdg>i*a=dXiu}-4(jf)trkb5Ajr|3 zOrUXpIf!CYy9E_UKpZ$oiIXShPcJ$>>u;R9r-hGt$`^)cBYX5JkJ2kyMlA`hIVHIl2AEm2Kz!^u?BmM=hHxed*FlLhE zh-g)BrByoCjRDwzcWAIT?vgZu6t=Osj*Wx;N{k*ww>s6e`Vb*%E27v0$nqiFmi}vY zfLo32f7%^-M_oc8C?wTQC3j#twy9!eZDvb9-R3yo;S3*z1CvmtQ9Y;?cwr?P$(Sm` z^RugnQ|zU*VUd>MbD4PX5i(x(T0RdWb8;r9MhMMuL_!_78L4vVUgc-U zilY}K-Kf`7xVrm|rf#9I`J&xhH@!e(#|j!)%8JrawXT3pOj)qdV{P5+qRY?;yj*(j zo7SYHz^J6Ie>Hcpo4s!NY|sAkd@|e?5td3BYjL%+^xXmT4lQhOya0@_^LbjdUJH)5 zxub?2$=pI$ojx4l~HPkwZ%gEmkuDv|flK+MP?5j+pa z&Ft`3vk&{dY9SnS1JI?rI)>TVqS>_bjBt9`)*4%~*wq)_UgdUpb7;?5gn#M61X6 z);F@x(IIO5cf$h8erxVVqj%n4MVh|CK3V)Sn;XH0c#D!3nFxaQB(fBhIf}+A2mUEmO9@_aPU-C~g+~~Dj zMwv(Twt`oN-Sn%n!&%;%LWZLo>7!KZ`` zj_91_Fb*0+{!3rgEIoccZft*Ycv1PZwY{cvH&i6wvZQ#rjmq-86h{8JbfS=c!yEzo zpy&bnW^!8^xP-Y61;^o%i0Y{VDLj0L>i-YB8@hu;NpJPUH>cok)O1`F9ecC>#}qM3 zhRu>1w&ek7?CLhOZdQNVhkiKhq%v@}o_crk49e~Or559|0Md5S{YAHZ?!m2sPo1YC zH0zx{4 zpT;d(BzS2vAyoR%uOByQrW$kl~3j|ReR;+eSEkcr@b}bErGUa z>ZoBtoA3(P{LYt}gi7rhu{-F_Qvg_#w%oa zC8;F>pS9S6aPlRV>u?B2r?e55bk^X>I9d?RL;o_mXmrnd)Ed;TzMVxQ*>W10gvpeV zN}cQVY_&g~&NO=P3P7Qy>Ro>LgVJ(4~3Q z%lNv@;)9bau%y1@ICknqIbnl}6=ELnD z?0jN4nVL$dTUdU=sthX%v9k^5@a=%QRzy*!Zdx<=VNbubWd?V&x~k((_YCbHOwK=$ zzbGSMMb-k#mc#R`#_J_b7rN4loXck$=9T>F&Mp(F_28D}e>=Jc9k=?IC4Zi?Izn5# zXhgC1j5>**k1Y7(Ksg)7!&NfBh65Th!o{J5@wP4i+4F(XEWIynSSLPWK!n9pXN# zPEGu(;RhCwQqAxJG7??5ZCw1dKPDGjp2M`_I<|A7N~b2e<~#>sUQ?BL;G57od1&bElcqXh_{`3-=3kcWSz84F%J#c*cY zS5>h-asq9OsGUdYRQLz|Ii8|jU}Ec?;Yce@{Flsd&l~8=3JRq$d?!stfl{?|_>l() z?x-0cZ62WH4_E9)lW4`6MpLsrXm=U)8LjluScJ}{d9>XXK7KOyLvV-4I!xs9J|npF zu`pGwp^v%fp|gmJO4zVEsY}0eDBbJze356ZOR47Yw>WcgvvB%*vHcL&)tl1=!m2xS z^Zw_QdgIQcDMYFA54gOhgYeDMJ(~GndgDZ0Z*)L!>@p=BpLiAJ+}>Bb#%bAiNA2%? zV{(0C;mj5ETfYTSror*hJJJ_?=^n0~%3b;B{HwWd&%4_Cql3?Ex<7QfxpWVdzL8p# z#$GsFz=kD?>w(W>_#)eK6M;$Xe8fpN^C%slnw7H+kn9jYSFF}R<^IH>Z#6Zi&9s6H zxePV6FDw=IXA0sc#-RWMRRDfXYULS76jgY<;i!ZVS+PJ)<0hAq*w+`lp-7Dk za-qJUPwk-uBvW)zxl7&8qeK|Js>1fuVUK;2fHKaYgBR5{71^;4h2uZ4Vwm}592(Z?=XfCbX9e~M>r(3M&<(fq~CemN8&u?{zxFsuaq16 zxs+MwK-iEUudembvsAD3lnEEqQ|Nl*I-K!&sa7dNbD@&@Lj@0~)b)?yE;Gv9+!ZAe zrCye1rhgP)=((0_6mEjD(@ILTwzY@rUtA!}v(w_!PWneWXMG+t@qs80fSNhG&IU;& z9~L@eI#+8h2R?U;tl888X{XKH(yVtCk#sf(8mrfwsPPbfM=zieRU_fWel z-iplXdI+#R;n#~ap@R2^3ZCUup@K6pB~fZUJAL~k&8n(k01s1Nr{Kd`h$i+@kAx#` z+o}pH%+jixC62ide9R}KNkK}a!)CjcV@w9MrF1SE=d)D0Sjjb4h!G7ywn#9^Bp;KM z2|%y0Dw-%lihCd)`hZ8(=8~`Qjp^(r`saO+CbK{3)VHuqsD>hTFR{R_yK8>eIPg?s z^Qs8OgA2f=8(v?k6ju9ulD?Bq!%lT1`z+k6zU0a+!Lb zhn&cBNA3Ji!3>9SXaV68yoAUc`nIuVd3i+Q!V~@ry98`b+vYhP++}EeS4hVn@&}YB z_YHeh{RI2_b3Oy<1k_s|&Q$^;U8ya;Slpdll`@Vw1l8w0$UDDgm!5?|%Vs?4vYPxC zby>Q5hD{mV%6dBKQ~Wyy;j0r!Eu`^qD$f%e^YEXX3Xt0Mw;uD)m@+cd%dU7t|FsWo za^Fu!_{i1FUX&$h$!;&LB4tECmx&uaN<$<r3#Iul(K#TidDIQ z_5LIBpg8J3L`Yr4dsT+i2X+p@M)azE^yt?=5H)~n*8`tO2 zAFcjEwbvw|5k&7O#DJD|lNapUR?|G1pGOrY;6V?XDO6l=Nol-CDG!t&D@a3_Rd!Fq@1MmxYHk2ug!n!1{ zMY7Mh#Wiy<^?JlX%&DZcVA^XP~8?XBk< z_s(z7yVp3_5;|>NN|O+Wx;d`L(aAU|Mb{b4(Ku45<`kkkZRA>{!mFkk*=cngsULDn zt=T~Gk+bz~R7FHVa>$|?BKdpPU3~UXtBmGkaub4WwU(KwZ;>$`=UAW|>z}qs&USB- zYNH`>0|lYe6MLAD?o{c&Eqe-S6%@zR)1C;_n6Zz9{zvLm9`W$W}udrcw)7tZ@D;k-*J z_9`XU8tPmgb+qntWi)i(ES@obH=K7lwc3UX2tOeJ$sFPE>KtLmAXz4X^%QKX6G|L` zpt1tPuGy9QGSyvnR z@72`8IL&75@nGX&E#QQA|GcboEn2K!P^2z!0#>4jQb_zzI`&%QRQ7ciJ34oP-Ky~X z`)gsX3;$?%zq-VGV~fR>?vS?zxe>=gqyjt$jv?SrO707m{q@PA;s>ttL-rlbFwJ>V3+z|wio%Gmc7S%*=?=n z*KeVpDFBCql}o$qI|B3%kOLr-~#!R>NpKHe_9d*-)A7 zMy>H_GEc;3s<&&Qo&DVuOf(!FEl2m0zh1Aqa`fczy1|?Oa+`~@7j30b#7!)D`;<5< zd)7ux4Bt~g#YS)G%@6tbXRL7xz2BR^h}+j*nK?E-qi1l=d3*cK5hHR2hkdu^5OVig zUI>_0nbz=jxoOJt7Oy*sb)Pruu;FH}t9487S{-ip*|V$6G>9rf{3}Jz6jmeV)kV)1 zQuIWeQ7N{wfa^ky3&ZJF)uP@2ujNfqFbWtR^>f{wNNm?q8|5tK;w0 zR7m}BkP~$TaYXqpa1cd9PoX8hIwKwAMD!B33Qj--^HCChe}pnor9MfSRYd&8r$ko5 zYuVi|-dM(hSE5A3!A2k@@lNfO1j-&E@HlM(@L%IS?owx8c2UuE&9jictIGFSQt7$Y zb)UaYnK-GdiW*Cy{Rm?2%jgUiDM*@BGX*Kj<`uoxQwZ&$TNkrW$0e7^Qj_(mkjOt}mS`_P-7+PR&!b_Fwx)Ij19w*|FTl?ifWEl-Nm z)t6UCGlnv8q&rBfa*Qs3w8oUuPIU9;R!1MpL_Xi)VHJj2x+v;@o49cHN6p;;#TSCS z$gq~OxMq$;muS=**b7h6ARdmsTwmOwOL6HaQRq=6j(P({kzG}ZHo~m)LfQRCjvOBN z&>@_4X58K3o)z{`N;E=#}x`nF;;T}sa?5fbilza)C9 zgI++@zSho}>?!|Eosd)Uc}&SbWr6W&&l|TXHTz~+ z*VQjg*rMjeJjl6`dG+e({rf*|xcy|j=VAl@GmQcY&;Gb@4tIf(7cbi-@|K06pd=#{Opta41@X)H8))}s~6n@P4~ zPb|Jc^WT2;59)JYJ;T|c2L_(VoT*o77Pod!fm`{Vve(!7n`JyPLsLJbQPvyX^ehgHh>VY&4AnF_T7`9C6t;798*UT@wFI`%xhUpkS( zJKv<_eD?j|k7Uorxy4_Z0*Xi+oAI&_v?&uDbG4wdCc}ToMBz>nDZ>hapQ65X@5oLxRi*Nq@ zDJAB%S(=n}vv^V5yNk#39K+Ft6As%sq8Gbm3eJpI3{N9F$z66>L{(ZvrWJM!W;fd zV^gtwx0pAIN)%qP{1Df#5bX!%>%A&GQBf8lA%4FIN^^-oy)EZQuylKz=u< zU6Y!Fv3f1DuoUAi(I#H>O0GNl0u&p=*p>A1Nqxj#TPIA#H)uIl!!WkSJg+QbK!-FM zHiw69%4OH6ZLODUS5CQk%rJ-i&n9ro8+pu)H4n>WcizG^L)cmWm@$z4)tkzcJa%-& z5kB6oxV)xyno|2?cfF|#cu=y7t={wipX?61w9&LVJ$G-Z^O~LYqPW{y%{hDEQVUxB zHJ5@9!QE?x1z@JR1P!an^Mr#nq{>RkPH%Ti&Y*vl_>yUjkTGkx{fZsXf^ zKh33HF69<`|AC^oJx1<0y3(yqp-|{?>&6`>`-4ezuW_CtCfBboo!U~NR)bdKRJuPG^Z!0g ziczlRvi%imTi-+Z?uei)O0k{e;QKx6# zQbBuiy+QB)69g^VsIHW;-KCUMSQWJ48qH->P$T@P1i^|g)kOab`Q|M^LG0Ns$P8Xp zU#vo}?lh~lgYgjOFaTs)vGF zH@CY23h9S&V<>5z-RQ+O?Qc~(n5k5&0wV|8Oh>n9Fr+d7+@Heatm+$iYNI7pxLg8U z4)}i<`||jh?(h8ws;Zi9q@_BaTHDg5ttIy9r>d49RV7rJ*3wihL2F4x-nyVDK@cP| z)gmPrd+b-GgeEd2A_zt#GLm4DOeT|=x%Zym^S-l(&-eBFv+0=S-gD1+&htFyyia=) zV2-3sjaaZu4Blo7D)ywx@g#_n{xt*LxUJ?F#U@A24mdVosHFS6&e%efC7(n&Q7)9j z2M?)-$x2Q)cg z?k)CUCl#uPH+@L`wOt|>)cmqpc9h5_q&@i$D?2cCJr;QU++S*687-y_nfb?Om~J^2 zo;fge==F9VUr!UHU9aA?%(s{QeyUXa{ugW-3he~y7q4eu@^mi8#U7;uv&NO_#%YEj zBHb0SOw5}>@on2l8MctO$L*$s5}}bpmubWbKcCCIgt|XuFBJbwUFpn#K^8$ZHi*Vt zVbK)zYnIPlLvqXQXH;KKqBqY^k)x^%v0v2a2M@AnP1F=~5z)9R39ceBNYc!ts8X7L zMph3P`+y##I9NAHKlG_mO(#l_G9<%B-|u)Zh7u-RWJ$8onbQ^)2~W@fZ@5%wN@>hb zxZLHc6zaBgyPS5~tU)H;Hcs}2K3hmL$<+QNg}rAsRNuH3Qe!&Gi@C+{IqgLZxbI0R zb*H@)v8FG^V9WUD?V=%OcAwUIzk4^zu<2HJsEM;^`t8l7@5uU3liTl6ZnXRp3cTx^ zL!5s|y8u^KSyTgx|SUl7&% zS9PKeau<1X*5^~-{ww#JJ8!ORbN$6$)WoU=C0DPS`oDLKjwC*0v2y~~IJCNU^>IoZ z)^nFX z5{F=)sFqIILN*@nP7@DML40vlWH`Xq1rdYaS7*xm{a&s!v%I}>$ob!?o0LB|%My}E zrq$H^F<8LH#E|np;$=67;(IqqrcoI^Q7jP_zQu9^PDwRm)pa})oN1j|E%5|rR==yI z^ES2rOMyf(@HgMO+StgR`iVmoTm?hq(qwv`LX+r?tcK9=Q{pkMD61AnUMp?*TN5*l zN%woh(_m4f0*sR8LNZRODrT)W03w8Md|`pOI=|rIZV43ns^Hmh&@0qOxg+}e{~K+G33scA z=fDd}4pahi361M7r`lxiOX-Xlp?9!;lsBOZh1#RkH-6Q2+0R}@Ho9q8XvQ8lcE6QH z_oVFVF@W!ak4BT}d!YH~gEa4efk$ElkHm|jrdpHf0BUhJMGNK08-N&iCMo{t9n03teW)4DIR8t&VpN-uF>>1W_4o!U<%WWO0(-r2!pk-DhyEh8`q22n z=WD(kDV{f}6JJ&^Tt63v`(wjHLc7+^*~(&M=QVHiAfhwy`#hI1B!?wfR90bt2dL=E z4JZ^z)Zu(Xz`SMgo+h>#ohcGF`gVRH#lrWu=-5W!9zfxb=)vN|ikz>i^?j5=dnJo< z8(W2jo_9u`OFM5B3Y0QCb(^QmcBF(dt;6u42btyBbY(S4hU+Tnof&TO5gPoG=YWe|rw9%}=74-(HQP@465H>F4 z!LHe(Zc+XnPZV6HHZo#=wAjvdNv@W%qcrdCQ{_voY)p|D=?$0q&gQkqA++9a6JjU? zO(#!gy90C;nlEI}m*dUrVN6K9AdhdbC;r9DggAW~q?$41o# zI(mSXnKhkUuUEQPwEKH0W1}r@%a*SF|4P@eQtacITNQ>jl_%o;*jt4ZFa+(dREen z`uYarC%|&}%6?exceCdEZ1&s}q%aWxnLNq>g56LqLVBJ8PHN~OwXcUx!Hm_D zH+g>Ny@EH;EP$XnRT^w5R@>iUl=ms%sw;bG7A?wrTHO2k--hRYANJbY|Gd*-V}(_l z^=n^AGlQZY()@+gdc#c`9d4zQJ?fm3ggjTBY+>~Y2%TAz_b$DKF7!mlI=|5FcExZ4 z$jA2Z2kK>?6!E{wxZGKln%m+W_hWmRT#4)yI)K`psFRMXl;hG3ynl9gD`EK2l29l% z7>t%-m$zl;NTD_zj;-^)H-hXMy#}=A%w@Wb7~(+-;|+{E;G2Tz2ZZ;J{53A9hGhVj zEdR!06WS=`sg5*Nze)O$cDD!d@)?G4C;JwCA)5iC5xO;qvzMS(YS@( z6;*OP0(vKPU+QM!f^8vH+o6GbsWYlXE|XP#Cg3B#rL7J&s?O~A-|d_$ zMWz^hn1%r(qZb(PR4KDOH61CmJDr$Fi`%+l1}u{mozdPqVg%1-Pwh!WUAfv53oV~o z*%^&&Klf94o$><8kJI&5G%Jhx1A+CkA2<^DcfY4CD$sA*ZFIVyiN1DpHBc@rWAXYz zfeoG6YDB4UvO4F?+7W*o&~G^q#T=u1{Zp1vm8bpC*@WIv*j|9d39~6`JtA#R;7SK` z^#{S%NawAP*$mlhV^Wo&#|sN;Oy9dZQ9N*s{ceZhJGqg}QP{0b3MtHqj=XeKQ_arR z6lei6=Z00aVc0vOvF-oO^Y*BwZ#d73Z+f>%-A`!+3`J_pnt5tuupMEBWFcjguxaCV zGhmFdwERA;_SUtTG#Y@27gA4P4Ns;^D1TjPjJHfKA)ctdDi$6b*{>-#%-Rb0ZxpI* zVz8H&7)E(E0Iv^0B9saI<8tjL=ye5X0bMs3d@&~1qy#Ig-Hh(DGMlJB=glAY=|>04 zkX1pLWz?O!!AfM!2%j>U>tzL$c2v~11)_V(TP8bS!}$T;Kn2H(l9x__l4cdMD;nEv zc2$?4#Y8UnwE-DUx5%t@7gnWEn&m_j{W2@v9@pBJ=ND%;&P z*MuZh8+zP#?4D>i9c3#oi*xativke}K%c(2dK&xtN3Rk$M;HLA{A1yda{41bV7ONtc1$ff{1||19m~m&=o99@0ec6-!GQz*{r&NCn2wg_5RN zI0XO?KCQ_Y96IN=Kh;-WmU~Y)WOS2c!W-^1R(gc`@KWv$wt|22=Nxm~Y*uF-6b%PC z&e^oi{3ve2=A375N7DsR-JOlX*UpTFo^pAhu9vY)uxFxPcEZt4cfqfH_n^#5m{m`g zqBh37O2c)M^|?-;*QnWlu3J;n@8m@N)_ZxOzW*h0zdfxYbXxH@V*lO6tT3j}p+Bkp zL%JXdLA*1B8H6A9M8(I;^CAPEr7_`(s4!;|ZXtE|hiSOY&(MI! zL|=vBJ8E7l&8cqEh;M0e>nJ0wuBB-qq^@_Oh@s@J8`~)?8(o-?LX#`^QRuZO+|V3) zg=ZhE7#WKW#-~6-g1bjx$GxIfZoZj7x8v_bDM{=t;aeCc9@4E%Ro@Nb7Pjo76xP%!~Cc!Yf1zBLT{0sW+{oz zlow>6i@0++^=^S!j~0W6ICQ-q2o+JWNk80A;+ak;6g=M?qQX36a%g}MIykw}%k25;+X+|H(ijPvlN-TKa>D>}1C7Hw zo&xeb&ALHt!5sOuozK(47#h9BhqxEk(+WF_Fe@aR;hx|k*`h(RnI!|X092;!Eq#a$ zp@`oH$5J!30k2`@Uvmh3y9T%3$pw4CjPgYf;u-R73Kkam$q?WfZp-byT z+Cq|iS(?-A2w9sL)&5O^li-c?_JLeCxJvE+`5hBdv!E+;24B>KNnyTC0iIMy6kvc~ zKV;WFq_IF?r`ec3o)?|PWC%RJF%-4sF%3b4!ci(%H9MPE)4*C0W`fEK#Ac7XMHj6FH6m8G ztt>Lv=(;};GA~XqNSprbrJy}eHr0GNqeOGLO>6n*m=2}1)WIOk2O@Z~u)P<^+OR1A z_pi(?Ncj@?=&2&52ry>eH1?h}XB73?M5k>g_k**Y+KX18wK4%Zp8+~Qhjm_UG_N)F zJ?R7OTn%R~57%qrBk={r{pesbyFq_=5S~yZ8oL;15pmiq4Y$Yx+BCcAoTT>BU3d&; z-S>|!9`jGTu_6lOm}E*Qp2a)Q_$M@qZGQ2A|B0Rx?<2PE>e*9o3$mWh@CY1 z2L0)}R0zORY;dIpeO_%jYG=77-y5l;9Mmiz*{bPb)#QFFCpaNmV*B@F{{EP5IvY&u zMTdIhT!jJo&}I{@O{32oa>UL$o_7axeyf{cQlg%`vJ3G7$yZJV$Hm!&L@~Lep$+^_84>aS5xNz z$WODcz*ak+bbhh)z!^)9zZ~k)9ZUN;)PJ(Uu}@L1Nxo;D*=&WlgX}AICm*SKaA#o5 zp?m!{mX{=?>VG>ByX($Ewl7?5|8>v>bt-lftoiEn*;zkJv8PP$j%@eOhz#}i@Rp&} zsL{;xDgB`%rBO;y6Fuwum4jU`k#Ux)QX|*Mk)&-~!`&NVcnmBVAveeXwie9Bw{pBo zU*9KdAF?TE;#@k@3*6|@UIe$@u8f?%g>FhqP*z~V-E7O-58P@+3R$9uHWpG$-{Z8a zZ;}jvwAz&Dn&ce)(pahxsO6q5V(sN&Ue?pgmd3YtQjlK6Qqh;b0TjZ*n3@3{>lC%? z3!OCZ>*WM|=T@WcbX3Hs_Sv)!fx5xR-0>aF$&@vNJwK|zOdrU)NIm^Tz@sy*mdw0` zQ2|*2{HFOSQcYx2D-Nfjqp1itB39PbJTd(i-Mm4wa>~Vs2?esDYLa0~c%msF@6|q1 zXq@I&5?zZamks|~zC1}O+qqDwFQm-ZD8K#}C+^oY%V5(oSmG%!f~(lk&bieA8q)DYugy*M@yeKmE)0`WOVb7(J_n z1I~^TVNTlx6$T4rn2;PHxEd5>=poMor#Rs%vHaP^ju5xZd2Aqeg!S3%mmhqpIHclK zqa;9QNqD4by=j^06n_ok}e1yrhek(hB4VPP|@o3RRV2Lb6%&vxjVfRm4Ik$DwW5 zK!=Rkv463=wLp)X=+d{o^^{*9;1&<{_Kh?LL%&`^_A;%-tRq;h+n{nLczpa9!X zZgl8y9$i~)1}hjt(q(k3KfM}zGwO?qZ^zGgc}YR9*7A35RA-_j+Is%JZ0K66H4T}K zMDFFSjKT`D&`F810C$wJ;A-A)diY5Y>UV?^F<8-LPV`WCV36}cagGZ&cm2&~Z4!gK z;=lxVg?D+4pdq;IAhk7w-qfbrw}f+IL`%7k)e!P#Qkwhvm(mAxkeh?tmXL@Gyoqk< zfDw!-_h=XiSM8>uWNHRpsOVu?g05d+k*MY@JDhHrSdZrL@tU^5p63`&EKaDFqvk!l zA6zwO4A)=nQPnDw&wHYQFN6&b^q*aqs6aa;*k-=1`%F1V0RkhGNXwB7a8PE7dD#1~ z(*sqo;`%V9fo}gO8&KsTgocpz|CifRadnMYun7)<2wea;W4M9P4Y;Z0YX7>tGvJsr z$#p$&!ezKLVXm0cHQQNV7iPRc5l@2dJvxfwW!I1_=aS?1bYbeMn@pV zwcd|DsYEu+fg^yd-@|glbKC>(*KwMCudp_ci9UW;yg~YZMIR24oInX~>bn#><}?tf z#+>?JGU=I>CTy7YMk_mG(;uNZ_bHb{!taktE=Z{4w~>_V{T4`XaP;_-z#vZCWIB{f zs{n+yh`-3wuOhqk*3$ETdTs(2ILn}Et*@2cR+p-0$M`*&YB0qUFG4xsmb&3(LXK?k zVLU+T6w@|~2F25p;+%mOkwvpQd&na0OEb}6&~h7*^d6<=Zth?^zeh57Y<}Z$+G3Ok0V}kK-Vqf`Q9Z>dgh#FXw%D29 z%8}oW_I^c67%CnBP&mJ9<;gLpMrLkFeeGss%bRHpr)@ppIKIFUJd9svDn`?a;t2h! zIizj>rgeqMp9+~lDIk}u*-n=@_feYm$@7lVa$j}5iSic{2YHV)t+y~jCcNZZS=dvh zsfSTQjn1j-`^DIC`XkcU%7*4dQuTr-bAwIEY@#Q#X)>0WA?{{9Sh`cj?s7uw> z%m6q>7EATdV!UzP?FC3&15{idrcDjs7w7a+%tYYZV6_8D;VDcBHBMFQaqO-}D`J1W zcWS_8CW`o0PUY5yi_B5*m3Ux-WPWy-WON8fO?wB*Wq$p#GP2O)AzkKK462H67IUit z%51~GU{kjH2G}y2Z14>*R|RbeiTcKTsnXJaK@xEdO%dbK$$Q0kcs^DDx%qgBFtO0W z*NCe#!dBf2Tb6#qfrwDuuQzb!^@HOv)pXk%M|&EE8l0*)r1V{yn6mEY3vw z3pD!}>-UK|a-g05d7y&WmJdrV9^?2b*;MjZ@@{!zjegjDi@HBdHYWE&wUydS3XR)_ z-W84QuGm$J)t%%pqY&YJ+&kbL0tn>!n6&6ttx9Lfn|8kUM+?uL^0%`j8bzzocq zGgJPlwcgD1PuvI!ElgQnXUyN9kj);ID{2zKzj1=g6q*8 zkWoEg1&4kq>%rQ|^Bz1keHD%CPH$XEqPJaX;F_Jf*8zp5Hqm@NH#W#&dEEBfu8l>Q z&27Iv8Ssz{Qw5wZt2;QLeueDKBYTtE`z%1*;TLSoeT8=+2PQa}UJe?(jtjEdk&1-h zr!M#XrgGme>hcoEIIa}9Q{oHa?7C!tjk@SAX5x$_#ZC$7t9PVR`kIrBJ@J+Bij?jh zJGK;ucm=?RO>c@bd4A|t3e$5E7PqoQxs|bVZ$v$u))(VKLN36*>-Tk#c&R1X31gjM!JP8{`}!TH+HbWE27?eMVQ9DBAvbdas*p93LXia`YJHr_e;0) zxvf0RZP`LL(aW&pxsd;U3+MNsO{KG+(6DAXC4Fhj78x(r!TIJH`@k#LQfa!r1k8fX!o3=`aVlpd#iM z>dn2vEC{lvf578YA*o7oP7cs^dFr@5Nkml7 zqG&tLB}mL>1u*P+ZsS&~z~#E}^sZ!lW1YJ}y(d8od}}7beC))zCFl_hn~i!Tuf1}s z^Z6*S3zP!;?r+ORmZ}Z33$`J%9j<2Y=jZL@-*YA%YwH_H=s$BY-r$wAlq9m=2Bb3zZn+Ats?uD5lIjytpg`~_xinFH86yRP81j!NUAd-665MyPjB7v{ zvMP0{Sp%>bf?-D_n>Cl|dXwAm3i-b9P0HrKX~tDc9KSS zro0rJu+#-VjG=8Ljak;|tytyXCfXr$A)Z&TJmDMswM>8&SV=nkt%XahGeQgXns~iV zxIkwB^C!9lO|1bxb_qsXqUz#BhgGQL|>7P3;Ek`~^rq&MR?+^@2!-n=;vX=P6^6!zE$Z29M&P z8D6T9GvuGzc655!s^eGNHOIJzt+U&EX-?cH>nb%jzs0LEc@GeF-y+1;pL@n0^|XuC z#Mic9Xa`15?gB<-u2cO&7?&KTe|?5e6s!%%6eG5p4WnGmxiJ(=NR;9?4QEU(!o-?i z@q_Op@gXH|qoZ-q-Xr>1>E}~;YPjXYWH*hUbhx~|x?5JGrrOvj%cM~D(duGtuCQE~ z(J`X1-^|W5&z?5D#mct;UnJES;0g4I$B$FlHV1r=<`?HlK?7-cFJMmJRP`PP5Rd_6 zo&nV1H0CsNUGr{=_j~nfGw)DDJbvG@#Wv);F3eVo>6Dvi?cIsRC4x0ckws$-ZMHi0#Qksgns9FIQ0<;9S+*|chQB{27EB9S) zJaaoG!U*ALSD@v8cj)e<~atPP_%@ zT7pC6O{5Wa#e9KBPs+oir&HWU%{^S2Qfjeo;Y(bVQYYdfC*t}5jt)uV1CJhZQe(so z+IGHn2~=T|s_S-)rU;v^x0r-NxsM0Z^YbK~hL0`>w+C_JqF@inA>|tQ6w`t9{J>U& zd^gyFtT)L^i*v=aPO?RFGaK`Mn0sl{4QI;FcapXdTC>G4#L5759%R5hS=LocjX@B% zsVEU5?<75+wZEYd_WDb*{f$921)ueJW1l^+W$Nxe6Rs<{D+s5-pc3jf!8~PGK>X{{ zoEl8CyWOy^3e(;%zHTr$**uy6BH*qRRR@p3W0Ds%26yV`bx_lySQ5S@U0b+_KC1hW z&lH?p@HVPH9Be!zaqS(W!HS~+_oi6VXpICFlvlwt7oI{Dv_#8sW`o~d{t8A4-_!+v zK8EdGR~#9-0$2Pkqxx%n$zmnLjxMo$tTx;c6L^Fq~k+yl9a7*}6haVDlED`24PK z{<@do&R@YfHj~fP{$%2N?d8;bP_vuIL2=0Nj>DH?9G*|9OtR~a{4K{7-xCu~p@i8MgZPe8O6&Oi`Nx%-k6dIVgY6W&~cU>u1wy|87vf1B8?Z<+!>*oqso&Oz?dA z1qvG5MQFQ@TMQ_ONdTF@TMX|!fRDmW2IIk5LZ^|izziY}*mb-aNRv6)?@`zBni5fE zWc=asuZMZCZ8!J6&ce<}0%ndDYY@qgpmY_0lqdV}dWg`ApKuMc1M`-gz?q7i@84!K zjC_~elT_F2uycS&Z;W)~hpisWbYUx-u*jPr4-yuXphB8KU4q3f!YGO&Xg04uc7Apq z!$=7#;+-~Fxnh&)V{E@T-^5{RQN8@~j=}dGuMgeym7(K*1wnt(lyc2Fw2M@A-w|6A z_3E&Pn%kP`*#g|JM;wNxz~AVtG;(3=9I_awFd=2}yrXq%ZZGp;Kn^CY-Y@#}-l(zIq~7kaFGWbq}mR$EH?le7p=L zeAszCZ1kyUcX*wY(s-Rryr%XdvAYffmXNrFDqbjUdZz>EI9A)Ci-ngK{UP$%L^|jd zs5sD8!KMzJouhQIN0n(KZ;?UsR}*5O=E#c~+z{y|B+`AmzsX`=kuvRGd4=VF8!6lt z+B?BmV=rOGKdCmP=eh4oPtEQuPey0*2&PB0po4hH8}R7pFt<`l73G=W+#kjDVz@U~ z4VP2rWmArC^kMdSo7pfKfA#MW=T$R~6h|zO!17?b$1C=`oRV$BDcSF6{0m;YimOA! zi8Nu7`Uy}4wMwK0c^D<~-~?)530WFWy%NjfYjkp+XdNn?4>t)>CR@~~Xp=*C8e6P% zM<^7fv>QBFX;}S_I|Y08Ofog$o#HvTqp^|JO@yG0F62?f1;91VB{C5&I$@YnCjIWK z;;S`M*uMJ$WU2~76Cb3HEo?2m5A--2N7?zDAFAafK4HR}MmH<_?Q>zAl^t$oub~vl zZXXVhFPs=c;FIw9f$?haj+u@9AB(Chi+TWPv2ltL^0&pID<$qC2pQLP!;fzQ65-mKvk+~I*8%F7gy57bz^&lnS z3JR^P)8^jS>7rQ*hl4|yb*?!TFCIQmfBNX__fD#Rc$ne%%~9u`oNw*>?_XU;@eZ$= z{ah%ilIZvI)2XUDWY8Q;OxYGYcB3m-b&?y+=UstMJqqK*U8bxCp=8Z2Qpv~mISGq9 zCJOX>)}sj;!C83kGvx8r`e7a1B@NV6W@6v zZxZ#(-RqgUbs{zN0Drs6D{i4uUOVxLsYzZ5_Hkq@1XZsASV?Ur`jgukeEEvMp_@C@ z-iSj2geHfzCVqs)SJXMiw+5F88__=b@D+HfC(03SXvHbpjmoSk@J5-C4A}>`2O%_3 zF2iMl?BR~gUD%rmD-I}}o?;O4eU_LojZYhd55&>Y%Cv!(S3@eiD;zcPU*OXMyj`go zWK~~j0iUWX+TDyR-wa~|Gph!zjKSi?XOHFIG>vGu=f0%bl+EJ2KgdnF{;#fcqf%pc zgx#mEM=7Nggk$V%I+1=da`F85J*NDe5UVu5dcOL?Nz>S?)~VwR1LgWP)}df05{}V> zxzsORO#A<`?@}j)(#Ev-W0Rk6kFcDtenN`Kl;_Ria|w95JnI(tbUQGQhsUK% zo9R!WJK${2ad^fJJm^lz5}u(&G|Oh~Fp6pg4GE=n7ceNcd_a=GKwhT2%*$FMS(m6E z(!YRrsJ$G$!_i^UcrBYs{8{MGX@wxpaW)EfZ6P*MzhjxNxPYx+7>Kf|IN8sw9O9gb zXc)eh=2U{+@U|VObC-BaiT-`~!Ym4IpVsH`V9+P`m{;*r(Ze5x#CaNNT ztr>sqo7@Qpqn_`aoPMW){6uNrHX-5@r6r-|h5J`K)qsv0jx@`gF$*SgVR*ZOqvi46 z+s~)`gxTJR<2c>|8+h5Z&smum!HL&>oc}~a9%ohs zaxd*k7}MMwZ5b(l+EEB*1zdrw51-*hs>7EF%6S&X$7ob~6W z8zRHa)-=oe7;&P?nX(X5c$aah#5XVWq~=%2J(URLUMd=2T2B|@`ay?#c;EnOva+`g zE<7*3Di)U7RD;n}+I46uH3#KHE6w)*B!CP4ZJg1&lS-Z_pT!5KGL7oox4ab8WD>HZ zD6>O7ehMD%esWl7!2ZDdZ6;cTXD@qckWxiO6CB2wxPD6V3U@Ain>j2n|Xfp^%k- zIdFmMBC%``c)L6i;X1HX^B&GM6&}ue$ecC>W9URa_qL-DEfdg`tOxT6w=I|7G4!Q` zrb3REL#{|eUyLGTQ>*tX&NZ))ByQVDn1BC{QyMq8RykwsYI|Oi59h&uD}0Lbve)q` zQXW1<*PXT+-Caa1E@=~|1IbC5oK+HB8n^m2e0{$*^p^Z4q8^poo3%a$zNvQ|2|Z1S|&+aVDlzju*ls^2cp zJoAU9)vU|K>^J!BLc_-OGL?WQ8=3~m}k z>3wr@6ams%oNwBrlBto`pH@QufMo+H0$i5zhVfoRMlW(0^skuGw%kkOSZEgCffWl+ z?-`KhwZP$1)Yq@CH43Lh<%x7_5qQJ-aBO?_d>-PWmR5|wE)`#PxO}b?7*0Rq5Dsng zjLf;IJfl@O^K3VGs|vmO&(ck!Ow{lVT%sIz=$o;nYCijoeHPqpDO78^foAyvBY^wU z<6^~MpXo7aSIxUuKC|bQg}-|xa>xKmxQ`hp0dS(02=NKGns{;aR{E@#zBP#kgVK~! zz0^u2dOZkbK=sfu!rb|=Ncd_eEd>Vl^nh-s$7rstK1SifplMo(r16f(;Z9;&+RpN8 zOI%;eQDC}0@#C`d{zb#+6JOXjUE^7+gg)jh!w|EBI-w(Q3GZ-Jc2{~0_mGVeh3oYg zn+^lF!c$_?d3-VIezdpDJ)+N_Jc0jS@Ud>EN8)j?v_5ib1ER<0d+J!<*U?WpE-NU~W@w*9d{1ACgD6 zL5B7)@e10J4g0B2JaRH@BkTB3{cAmMc^chK#cJ=G13&qJZ<(v5o2EH+QwMi?yjk7P zq5ce3Im`lv9IrOytIp)9?c+~8M>X-k9xiXtOT2gN!{sG$w!%Pm>u~?_h3cpz`8X4Q z?SDbNOjypwcKjldHQu9cTBmv2Q?F9%4@U2MuZn2eI$D`(rzK zhbs7z)M&ZAWO$D_#k@i0?iy%eV{bq}jH>}jqKubhQ14;5p|@xWHjP!Qa|~X~(KmdN z>Yv?Vmi8_iTho(|*mTd*LONhygJ@>rGkX-8&lJE_iwYDlkzJ=2&9I*CN2+jbN*kCA z^AVNU46~EyKS+CoDFz#h;EIB*b_o38r5a^4$kY)(ZYv$3aNLQGWOBA7i(_z*B%qpm z=NZ06XIXDnca{^1u2L4wLyAuO$E+^IdQ`u?r>ij$Ml&{2fyiA*uq%`9 zW99RPYx&eoIAn~DROnQDf9{QA#?YQBi`MvhTIJnrHbWP1STpalV%8IKtd+X<+;$~A zVC@Bpv$DLw!}&%B&p+8`q@#T8o0`ek+E8c%6OFgOP;ccQT;j)~I5|!!ww|9qkq;R~ z!y2~_lQxxHF4OY;tb^pJ3iq@RUuk>arYmRP%hp~pj9N4(z_w&7pRnoLb3QlGVbdHi zkb}LMO+K6A*7T;ln7Uod==)e1eS1F)6ukm=M_I;Ye(ScPb7X|*^faY+44F2IsW!>5 zxjpCO+lY?^JpGOCM`X77F7FbBK*?FU2-3iBfrED$#LRqQW z9o#D7(USla;k^V(xSCh99NzqqvBVJO2+`5vQ||H@JM0p{M8XXmJS|rFro~P)W)}AQ zxNzEPW&OjKSY5T$EIh)=nB=#UC^fN44ykr04emOC0dDX~df91!D~SI})(=-8V4~Ok z>C*ih^Zh_h{HM@?Vah;>*BJoJkc^=+&Nl-{a^?ujMpm2HQ;prEjBW4$u+qBhG8|vD zvKA?m>+U;TS7i}?0Uwx ziTc`gBQD7T_WDZ^Y5SG+Ig4v6XN4F#>?8$qC(@WR+=+BsjvCxMj!N_7d5%A7?EP4W z<}-NjyQd~Y`|}x7aLwJ)zE6c*J&-)bUicHMTX7G)Z%N#d@)89Vo|&Pb!k}3$RQS;> zvu?B9(Q9aWnddh!nqCQKNc{;8lPpvcxee! z;2_(km@o90@Uqf(@(Z=H%~mVB!{8LqSEYHK0?jDnohvLC6G^TyJpN!7DZ8e>lyO8K zc8Gv1RL3^B%AJ`P<^(_pp}DkwiVV;pNBHfq1ZKNMMkC9|2GrGQCJNGaGShA)SFxQN z2!=?XRMkcX7pFem!KSq_#mOcM17+P@-tZ~|b9nvs>zo5~CP*tov*TL@+zImNrd}9FOTv|_kOZf(&Jeg8B(@MMR@z0qJ>5!+ zb}vmL8{e0sPO7Fv-4l23Q$@SItU!+q>2uBp|4@H1s|v2OJw5!h9`fWXW9@UMpTBBZ z+w2&uO?p-&#kCGGv7n%8&B^KVAFwO3l~|gi>g=(xBqURY3qx|F20T*pCSkdwmiqZX zCPl@c%4dnVizUT3Hgjj}q#ffu+ZXm%q0`kpgC=PojLNlOBt0~p#_D`(_aQVv7fAz) z0QhlCP=dpN+n`17NyYRz7j5|x{>__RjVEs|U@74nkA2Jrxl@&~ch7G@BD`P~(AnZ! zf(Re!+`+#aN}5%0lR`kP6`D#?@p_4p(j~4Egn|oWWE514N0`J`no}HMfdYe7Si63jqCDp87 zZeDb1LL#<_Iuqv3&^xM^DxUu+#@_hvoYyrqJ%iNt!pIN5kw=MBMf1iw`Cr$WC&tg+ zdZ5iB0Hv))+T%=wU-~6NS>^K>;<5c+egPh_eMSD6kXrFJ(t}Po@{};WsXW~!QCw(s z+J!sIak(RDxB}+rDOs$1xz}kH{|J@Op+qr56Qm7YHS-k#*&E5l=3t6!Wqu z#R&ALf<*y2)1?nbYV}kk`eq{~d*KnoCMO@bm}}Esqt1_hF5imJbFhl%;3;xDWNq#< z^1E6WL;@y-T?Dm5jDv%nup+pf-rn#xEakm9l2&2()B6u5>S>lCARCKBkblnD1^D>l zw4Gjfe+9_V$$aO&Fp&=#DM;Cc0?q6U66!ihUvH&ig{k-NQX5)S!$w~WDxBuv+gih2 zI(*1mX>SV3zqrN=`pG&w*AuYsFrQ0i7d2)+Azo$^S&2%&i=N2a9 z8QBPxKxr%bIoJoohSE|nJrOCZXu!#49mH6KWLw+5J>|`BX9jAT{;FxZ?#-zssR0_* z@vTKR-3`j;d!g~52JLZR13z=YMZWLYdo`3!p!qGR!w5>^-bj581zXuUBQM6@8lv2_ zDlw{+(hUq!x&hbLunIN?t>g?juC4c?c`I~R93_xurouT36wW55!F1?(3U<_u|DIIW zYDMK_INtPh2ov_O%&?j*8)#0Gd3=3XJ6im{Z;?Xa52SuL@M2V@+DwYhA+nqJ+*&1n zvZzg_smqnl%S?)^y;9V7NBRPf<@Z3~l^~;&un2NApESuCrARsF~n_&5bl7Ve2@eE+MuoXV6xqTw^Exyt8Yue{o}tlfg8qH36wk&Nfbdv)Cv+Jv$G zk$jf#(U|1SkLPKt79(uJLl7_V6M3xhj$2*l(=HVMkXB&G)2HX^g;7Smp5WzD@#nYR zO4p1^s=#- z&S!dOzOrP;!zaNAW3;J3Kl%T_>7%o=MzFc zj%LL;=sf1XAF@P;ws7F_|4%H8C?6BOsLy*w%x?U-Ui;!QFJV7q5= zlY?gPt!!FeYZM0~U29DYdq%zg0HpIi>dyD>JaAx0L&GhfV`+y?xGx+{abY>-8`yOX zopT z10!8$Q7B5$Cax#89>v`+&=WoGm%nQ%Kp3Hjqgo>r(TdFvqd1jf)NSv5b&ukRV!}(j zQLjZeOG^Kn$Ke0#{;4HQQk`tHjT<%MIUkr@&G($E>0VrlU^DJ}GDEP@R$uFQ z@$F~+vg>pM>^}&fpLo(xl_?!Q6%rg5dqfp3+)!oSS{^@#Mv50rg>kZN)Eh}`1a*#)JvH%$&7HdqM7hLqk80c=$-r4`tR2&C0M{~4 z3i^bwXU+!(REiOHtyv4bUhPBKz!ajzsVLs24E63Ghqf6%HtZ@5Vw{b0*5CG(-~wkj z?b9AgY_$WU)I^4m<~$4$2>XXSxCC=AD)gad0N9??Ig*aP*;9V3hj=fsDDwja6^>w|=2F-PyY~yjW9I({Uk9T@ zCkxQ8XF90v{aDms&eoy^(?(1+_{G6i8vT%`QW``KXDSVONL{p?#rAvMa>|d9)sMr4 zPmh-(`2HF%OjhDjqv}QZPvIs%LT%qPtThwz@Gpw9$p>;FwVG|Jn5d3*Pf>zumjTXa%`pMh*n&-EULj}n`l;V)?+UhbbOx& zC!~VK%4yu@%mo1tJ`4dq#1ULMR=Vnc5X?MT=Xm1dE~M^F^X+l~GH>&l;;_NzQZ-3o9_y*?6$kmoVMhG zA=vi0_QRP{$CgLj4ETNuiwE7fxPc=?)0Hj)qGJF&xEl@k0G5?$?b0@+Lyr@iDG0r=vaHbJ_lUj==-(xO43B z^fzom{;Hru^?3TbT&s*wK1zRMdgMCNqi{Yx^Y*LKOm(t+ zoONi`c?c_4H)U&9+V$G!wkyoHcFD_oE(lLtRV`a^VODioX-&I|)>E-9dGxscsP9hx z8_!}929Y}6q%2T_3Lw>*1)nqflm?sU8L$G*h9+4)aTwVwTv=J>ljFdDLnW+L-BT+V z&!QM2@=r)0edeP||6ly~OiFmqFXu#)D#d|gGQxNc-abCx+*lSaESVF z-)40$v)VtC-xUpdEzW#}e#e(+%#s@~Xb}(#g>n}5=0Kv$wn_Tp*C(n}4q*VJ^p2RIf4$5Qrk}8SqLlic2q?DAoJ; zn#eG?GJ&5_5J$wSZ~fM7X6w=W^NqSEr%q@!sqUNxfw`8Q!7=ZAvj5{|lb#z?Jmkx3 z*R!Tf7(f2A33qkD0dcKgUeIsRvCzWyZB5;-bkRBXPF}ipZm{)mp}DL^Eyq#*mYtNh zE8w3>8b(2lZLD!4(k6Fm_@6#&F0-kDf1aftmF)R)CaNfdDp(?BJvUKk3rX|e>og!> z)N6uV_QLy3Z1n6^N?1UJW{PZj5$m+mM4PnLU&UVE8Q8mLLYexNS2cQiI*Q4mzgqTfMClHj ztCkH(38M8-r~cxd!nl)RO&cxIEI1RmY+>n{558aZZ_=37dtz!n#-Lsajsw-4&Xno( z+1gh((4=2QZuBvoqyDGxo0Ok6^%H1`X7x3SUs=g6(d=^&9INP{WUySMBQ!b?S4#PD zQSq3tt-v0VV^=Oxlbw>bN@z2)l&N2-##y$_$ol0DIG@zbd@fiOrP>56J~VW$5q{1Q z>A(|LgAz+7?SJB({|=E%y&IY7IUrZ%^o7q5`Ip!-`b@y~cm4k`GKSj?p&8oWwF zzl(H{5|Mm;t~4Y+2|Qo;2mjD{%6~0Qo@ir+3pVYme)nSw;p#ailIh13YJb>KSu^oS z;O%+~TFfk^|AHWLtS6Z2{JsEAE>fA*NfbZ*DA6e~e0))!@Fu+=8CFsJ|N8i=`1n~i z?Xza85$d@jMl`f-1K$z-AjYjcNb&OC4@XD_)}qHp^8^3PBBMhcXrN9$pIk<>+Ar8A z(q-yXc$gwipQe;{g9Fb!+s2|v4A@b@z>E9bv@0}RHaU`!BezJ}dMle$mI=N2Iil05 zA9-ODS#6~XV->6a2DPg*VR4dOH7)r@&2=tQ4sXBUJu(cj0Kg8b>%G;NWX=A-!}sXq z=qkD$Xr$J)g3_SkL0J_QE9Y4rl!`(bwwa%fDj+#QJ+Oc5k$mmDS;Air=;)81r3}8M zT_1BNE=If^Tl;S+b;QSfi2`QvvJ7U!(@C>u*z)XnGV~p>OThQaSG<8c*SY%1dfA*_}$hsx)m0cDB@izE$A;~JVrBH!-=*7r}lc^O&E=jVpmD#KW<21!; zpHG}D>M-hDBeyEJOs}q|ad?6wF0dtXaIMeNwV`&e-DNR!u+KCp^CX=$YqIy^c6)xT z?mV>+KyI}A@&SJpf>Cc}S6H35^Qn>9MvEl1`#MLPFcPTGai}|GvD`i70?r#f8IZpj z20f7Xe92fL?+pB$n++0Jr))7sY7wEmYGY%7v@EDzH>i~qx%h^i4WThN>5dfD*b?Hs${{DPzeV`@AWkva{~@y6;&hoG zbIWdpTMW}_@e`i=Pr0K0*jlowlPcZIM*Tb)UH0ENX`gqg`E4@Q~|8`WU;gC2T z!m55>WQdg$S#IVXL7p}$CSBO1ksio)TUwZSP1rm~7VDpm4yJYM3a5*MPqty5GAo2z zsjp;cZR!+tO_lz%Hb*<)(5GpX{3)$nQ#LY^rd&}sj6B%mx0|XppcQ-4{;4JO6cQ!A zhJK6sEtJQfET1G4dYaQEGSzH3Pl+uBxvve@#zOYPBh_5JheBSvi*?cuR*t59BKyUv zj=J{vY97;%BBopKR%Fhsf2v_XkD|-;(|59QolX0JF95;dtl=%QdLgEW)$dTwOEx~( zb7Z2N@~mHtE@@&RpO9aas;yh=v(Cor7lleSF# z-DTgJKT*Q?!pCb!>tJ8M;-Kf7%IaQ|o_~MQ>)Yviy^ohugW9NaEjdo&<9Qly(dfedN%NfC<8GTC&j zF9l_HM2WV`1|^SPc=LApw|nJuI8JoMY!N#y*$nSo$qbXy%%b)gN+^#Ng>E4>)6_{T zYtCe-<|lM$`pUBUO&diW9@#(S`HlOR)ms;&T8e1gKpm~L0%!L1G*S3CD+;&PS-9y3 zo7xxT@)cY727P!ya9rZjH`Ey7FHM&^r`N+`n2gpHKf zIg8dzUrpLP-qNH1T&Ww5g(_f`@GKdz*En3v(Rrz^z!eNc7xjZJ(aLU zXUGPA=*eGrAnKac%N1~|zev5x{NGu)#HqX0wW3l&so~v-`ynr;x(1%ZwN-I#_CYf* zyZUaa(v_T&m@gE!U>4&2Xc^JyX7pcJ3Cg=T02@z&WN zSH@OTQ@=+M;~gTyGLkrs$J7n~!=J(F=As(~{D7_D=&MBaEqbt?+WWlqB+`wl^LZ6B zyk%#%VhEsT{{()*L*J46$H0_)DBeZ=s^=9Fv`;TqWHylvS zmbFemr8BBAq*b->Be)lc8>PkbiPvm~G{+S~dT_&9|tCH<#M4dIy zEa%l|deUEFaAOa;{1_)2y%r19fIH$wz`6?IStBNi)=e*EL0RnGk7A|NlLSC5AtF34 zs=`8H4ks$4JpN%0IsZNC`=oDie+!$NfFw-9x^p{l0H@v_a;k}(*Zm=_aepJL9C3qs zo}fPIc1`+eDu%x#aLVGkg3xaR_^#__w^!0hxzviYCB3AZm*coS!w~{k=w30t)Y$y+Y zGF5Z?+F)TTi+9!Vuu>tm-+<-nMr;Ucdo3`3VErx?@zY04O*j00Xyt!VjgzV52>lnG zcoe9{4OJ;^D!GwO4VuX(UGpU(rmoZ;HE;{#H4vvKq&n~qE*AI^2I%W0EqZF6BM*7Q zuaN#4Y%xs1DP(>L6$#2Z?HV0>f)XBAxyK+)S|PIg|0CTsUcfSB?V=osDh9+;XkUaz zCA#ny###;gK$InQW7H&y;^6Nt8BJ{WU$tJ82Y<&k!bu|EJko=Ae8sHZS?lE>0j6gG zSM}kz!8c8|099Y>ibZX3q6T(fK@H*M|Btpek8h&x+J_5*2(?yGsBDHssLE1BR*{a& z&5uo~idYaaAYx@Lds#c|2nc17eTj-tStRTQ3QT1y$Pxje#nJ|7X(**l+q6xmnVIum z-$|3qq`iOd^S;0L{pY!T_@v2X@||<8bDis4=Pf#`Xfv`}g%>K$q>8knEyS^?yZ8#N z($w`TDYUeRCQhKwCBk?nCygKLEPd}q0wSR8NexMebkmin-TnBx$L_ziUXS&~v z4PaVi!Jb1nt`XHQB1v#}-#vby*%NpAUPZ~GFg8NbCPPmZ9@~`=xv>`!N7k+$+3)HV z+&}&mrJc>p6-{Zaw@_YWE}x8;pAko$Z67P0zijxbvhjkNxa$f5p42^H%&6Csitfk! z!nk<4Akq^WJ?#z|&gb83;m$=Wk~C|+pNb@L4)FLRA)}h$;>nyxZ&BvE4qpFL)TKDt zB$}GvRwBx+b-Q8?_Bq$)#KEg*@h%124T6)GB?BvSl}-VX??V^8X1quvgZ8uf=ewYx zp5l9UH#tK z0XVo}5ArW(u76l(&Wi!8IH(0)(>`2T>=5(_=BgsZi3R{>-=W+sMHJI}_(2s7O=d2p zbttFVBQackBzWvetn;T1U5G%N4cVPat~&^%=aezkOKShzo=mV0X_QavG~ZgoQZA2D z7BA3e@B84FOi%mZ>f6}p zT)lt>c)6OxFLW+vG4#u7KZ!hNqYbo6b0FL~yp+aWr}=?k$@ZV7nAm?ei{SOj3clJ$ z`7DP=IZJK)=EB9xT*8pPit$XXQr`5FG%A5H?^p!Iaxk~y!<$J>y3xiBA zu70xW+t=dNV|h&$axa18yhK0h0OdBx50d9l6Hx`jG7CIN)W&q|N{(1e;2pF;&cO{< zi=0b}ugKX`NN-wbM?dPDI4To}LcE(?Am{bD?+STR?EzXpM zEWaS6a+dHE)S=3sh%4trLy)c@x&f~8d*CIJ2Y)5BBkL8#;^g$NX+_p^q7|Tae<@!? z>)Z#@^1N&+5i~zEqS_%c$R^nPY$^A|NOm0gl>SslR|V~0K=gH1S$SgQyVyLTI}l8- zLR~2I9*SKhLa8{EPrkvSJSfq-)VZoC+0Mlak7$?_0yyi(R?-SR{8!2ICxD8YQwg=| z9l}qed3FwBgprOD#&uXB`0AV|U_;JcUDIgr4flck{0YSbVG2Z(0=zZOLq!O@qCJmw z)bm)Xo<~=PWKXqB=;f=kIfESMqtifJK9ucq@ehDv@<~iA1vA+;}`YeaoNP)HGg+F)b8@X-aa< zY#;xoGLkE7Ttb;?!A)6UiTZ6M>SaZIPnvXv_hKK15?OArQ3voJlBvnWT;n<{i5D6> z_>NkxC*?erKr?Aw<&czM z=!iSEk)lu2MsPT+oDNIssHC*_ald%wL;f^$8aQTJ=xDjBBugiD4OYZZKuC>&Ryazym6;LEJk@#$&TX;#8CEUE=zH_%FNad}sz!v~UB-4dMa65?`% z0>%f8F25yO*NOJJ$ixr(WaPw2qVSiX>^Ut`CmNPJe_6!wz4@lyqvuTTR{7`zQe~#xluP+__(Ny_GzSLZp8rJ4D=;K803H3qV z4uUegH#lyAjgZaE7W(Mo9^4Mf6hABpYO$w(!{sj**VRpJ2yOAJyYBCYf$Xg^{#{C& zoP}RZ+njM%-2b!(j324+Uq1C@@zvtPgPz)e;|X=t2$7~KX*K;nz}?XStALV*LrFvK zl7=493ds+r6;daQ*2h^$@l;RjUKlq-~k(faNl5>yeYhG6hI+T1;Wg-Mx2DdL_>pNtt7w2n;W zRdYeGcG5Im5d4aGDaMR)>>P8Ux+;f3!vR!K*mI<*fhyv zhb(+obNqFZ+mm5SFd&y-Os%(6ynS2VBJ$)n*wRA4~QJ;5pP5_YBCl+=>zs zr(1v}Ru_6vM=9X$GD=}clAF@d^%uc8Z-RN61{ZlTWCtAbqa?ReXMeT^9BNaw8uKucLbOea0O6r~&dfHF4-!1< z!|wZ|NXs-b1^Ra_fnhU2ONvH@VWDd7z>4l7?mBJVuGG^#ZG8y3b;hoU1~*#B9IhBD z-7)JLdf{Lxe}iMSx63@-xho=IKo)%nTv6MHJ^m`^)9d{FE*Tm|(E9xal+$}nK>PoI zRc|$Clq8JM5lisM5e553`lVSOa`0YOfirAs{|8o0+Hv;`p} zEJS6~l8YHx@JB|TX++6PfXLWF)9u*3)$Kc?BJGcYE|nl zYkz0XVU&4#)G#Hi0~$SOO88Q6OBY`#Tc@BJ20ghP^rVT=lRr_na?^0-kS@JecQM|> zP5*>lrkeRQz;}%)WmW(PytS{p^A3%;EQK`lwNkH&ag4PA8hOfL{1M1zw-`1!TX^PA z&CQ4t!@w~mW92HqYQ8J_3Uy>$x3`Dco@{8v)w#`H()Zh2G>f9-kb89~u)B@(eyvkv zo=k^wL+tc-m($c|V3~E6>uuwlyiZV28|R?E`A~`SARy%CwIrUlxfmT@STnVbSYjkN zXVBdzd^K%LC$h{cDLA5L*7HPr$Sty%WzIu2{l-&miiBx2JPp*4Uj~<8CUNgw%rBsy zy+IXO47|74Hc{^E&fwWt$X@ncS{o44!}`jt!8?Xr+x*qBO_zq;y0lYRMsX<uKn2g>DbUC5+o;l zV~W~6^qQ2Fu=)!UA1L+9X-9 zWzjE}4^TMRe(S;wuH^=b5*{5llO(tir?VLpkA5uo1^VzLH9|!4mO7BEggCgn^oFM9 zWFz9jGSQID_v%tYwX%8k@D317k0=P#v+fSCPvz84jbop>o|ZWHF675(WD^PuG;^{% z&7AztO#!=8DYyx?>1b}!ZOZ*3V7)9Di*a`GIQery!Fqg@OK*^Kwgr)WBokV&h9nEc z{Jdmcy_idN7`Y~#ryuL84a{aKVuH5 zePFk8XaB4@FQJs2sB{Jy6Qv|9KoITyB)ofjwOs~frtlDJX8mq)w`<@RL@tLFv1BQx zTe6iU&l)=5b%n+}knlhtR^pY~SZM|Glt7|NCv zqM>0wCnbk|tXN+XOTzv_Rg7*Q`r&?*4AaVZPUCt4!DI4oS6(0&T7T$P{);l5kp+gI z9Ng?5DtD2V)8a0)M&#@ElhNp6EiZn65?am=^=}&j_f$Lt6~}SpMtWU;pUU{lQbe=S zj4VPGB+xsZwv^ZSWFx`Bz_pI`2HZL=Rf2{#PSOZ6mZAx(M1V%uDufDXe@oK#hZr@< zpOrZ6X|$;cG7_kp;)ij4KhF2PCnG$_`|Aa>RA!DEH{;AzRhIM?ke(`kv<7iVw%p-eXqt zy%QtXIQjXPLX|Gb26?S?oev-EwC}tfRnqmJ9EWpzbz1xRFs2boUYUi0yhw_&;G@>d z)&mFl8Q&_~-%@FGV^eD8tH_~7Sm98UV>xSA0BfE)K~p9uC~bW&f=;6exPnsdhKUg@ z^7vHi-SkmX*cFGNVLpGuSMQ?1I32?5m>?w-7}KwT)7rs9(hl=?t^DW^K{GLKkgC#X zWa=Pt{Z#>3h-~Th*jP*8iY}(Jl01TU8J+0Q;=RYsCL2C$cc5} zm8zhd7!i_C$>)5T&FR^JjxKc6&!VMUsVLuO$HDQ%9M-r`K#PQRqM14rVm7{!o&V0S zZ4dfz>=imhYFZ^mB!E6LWh9HHE&d$7WJLvywzVH^X|0mBY~iIXPe>6gQ0i`Hd$LFo zXmRReCpr$(mFTqbN>5D=IH(vCsvmm-UsuEbdi`f=J+O?5f9oC4;8*C{&@xvHNS7MP z2ZADabX=vjv6Drai9?GBetp_IRD$^+boHG`Y1(`~+`z`hA+S_`flNJ-aF|l|2DB>| zjN2&a3O#?oOQO3;%RE*9S@Kvto<4OtCFG)y4uu;(>FXlvr5jBPT`Sar{MFcM^#j|~ z?-LT3)8m6lQ&*w4Gaplr9c?_iBqey1D>ZkXviUV_SohArx_2599W;tRPMfGiEu+4E znY^Q7xcfO>oeHR|0Zli^3}o5X#iy*KRh2r9tndLi;RhFy_8u1VmlVXFCTNJF^zkY) z{zn`-2$F{li#XleVIrRwp3v5K>RY+tm_fN;LR+EZ5>S6HTft`<6=Y7(ay$x1~%!&V#f zOSz2YX*8wgk$#(Jeej2zyW>9(g3B~|3>xseMcMnRE5@Vt1@(Jbv8SeTz?#<~%>vep z6XP^eh#Mm2rddYN)Zz~0abM=J$>x*PeZQ({WlA_7duc7RCznSbquxGY2aQr}=|w2V zS2%@vHzjM<996>B_-{{V=X`n0TnCPkS0uSw7Piw^SnJ-0Ydn*pf268)tk0^KPZ{Nlnhtmd}2@G0-bnNky=HLLE-rmmA+f(@t67hIv>_hH5>0MgU{}w z?r+k0CRZz08p)P5EP{H39U$^^c|5S0F2+z8ow9QSlp5Y@`y>ocxyr2iDjMCW$l$r= zq6~}zo8p~dUzobKvK%ARUuDU(lQOiE>S+su(RspF*{tF7PvNL_7RdFAs(P+M;VYSk zE6Y50L?^JU3E8)wz%tD(utd{_n{^1-apG8n7@Rfp^tRKdR3z^XhwKdwZYVp?&$u<9 zd(j{R-|O9?WOMhT^WD@oaJ2P`9hR0F_ho9ZenAT(Eym3FF|fBN0nLHh!_R2zzk0BFzY33&2Kayii&ehuy~ti9wdydB(jI;5oN z;%94FK=t8G)(54CF4?^Qx2cjm{~F|C9ST0>ALK9%fw7Ofn1;aHRAMYAF~N{~GzWtg z$kq?(v>h8#wUlLZikYN@jaMRdBzsr^rIKr#yFu?6hw$krSJ6!LykRP@iTa-E8xj_< z3;zLmRP}^T%vX8lYcx?Yo^=)SF&SCu(<#_SyT?N!xcd?xvFAuP;ji(LUyj&&gm&-w zab@CP&)6ax+>iNs#5vPKsDGC}sn=_8LUl3rtG9oPY@YvQ_nECjmMl2Le>}8h(Kw98 z{N)h93Lt9wjq_ac8|PW8Sf7T>PpjC-2bi~Jw)WTD{%`npk-pPs6K`HmLp-W7uUi+x zAjhAQ%2upcTi>LLd7dWDN|H;%MU_}^cgNe1J?#!P(lv-zD|~k{me4iq@2I4>%mJ@{ z+aE-(iAF7yV+> z$rIcvV0Y)|7*-_cOZ7rXW(DmVvy^UFK1Y9imr4=evr^AnKm6s<0Q-rE3Qq}c=4gas zy@KsZ`qsN=ye$1!_5lBY-eotncR8r$EH+EQy?YwsG^-?;12bvjbfxonGA*!LD59nk zlA)~c7|l-_)V=jq#k%I&XLtV7*!;gPF*1FPYz#uNGkiFq>(dh>Qt0}?>%?97S=wQq zX9pd@5CRV2Dlci7&x1!;QqjFuUxXQ6bgtR7gib~&e@-7KOFiAJ@SPo5o=F|1)Tva2 z2Ris)FkRyvc1ipRb)=g}2LcA1^A_Q+QB1Mmoilmz8TtX`MvMx9^|(lP)Cn@-O&bsW zjhg^44e7%sB|vfi=I26Tuv zX(ueP@?AYjO!gjYMeZ7n^e??J7b7b6({Pbfn*>qo55gW!vE|4HHur!LF`bSwlLzW{ z=lDZ?@2JgiFzJi5OnP$)fj_Ui@=pB8leOJ*Eg0abpdvH(Ok)VK0ZcqlIisla`~gg8 zo-O#5#Bqh#P0yGK{a{3Tp<*9iZaF22!S)leIs88M*kLe-v-9`Yb2C0Y8$Gh;7UgPO z;K8!I=+)*x=6DMn zrF_p(A4X1hMSDw=<43#5f}W0Fcdf6TzE$Z!-GIcu6yuOmRxqKjrcQ=-gHjzKs_S(n z=@6GrdoPn~8nyPRj!YD`k-3~l zc^wpEd_`yz8L%Z_KYAlLviyk+bl+vtRJdRn4w3yEB?``jn%=lN>Ijo=P5M)N<4GVA zHHx+saOu*fNW2FA!m7@yHw|pQN3jblg5oifm_@_Brp0Zc)bjlR?q=j`gyQ7yE&wh1 zif1_`=)byJ@O1Z+q_3lmc7g!ymIj9G#WHe^4d2R~R%O{W<`~;XuFg6}XUaVKahh_< zD$6#XkPydWjXBD<^@qW5C_SCx_wm@tPlp1HTR4iM$E%7xaS$x!OGtp zKh}UrHKtIctvhZ(`ugOs%k=_61DK>M_=ad|g1H>sJ8p6a?B7uS`(}0Spa^|NUwy+) zdX%>%K2C`;ILN=V1zy5NH7Ximp23I@k*7x}fOcor>1hA|+q0<0OnWi$Xmxf6P`JTl zysSaVjHe-b7oOJ*hj^0pBqfp!y;Nq^50JG~FF*8 zLM-1sArXFZH%$$vw6VMRnmCa|Fi4cb3USMBQLZy;YbSBRmxR z9(2UG+e5DZ7M|F*e9Ovjso$%|vt)Bu>WX>PeExdDN$S?IG$QT_&y)$lpP`gZ^b~HY zvg;ji31~gL+4Z;OnX{Reth<)EhA8ewl}BbpmZwMFQE@ty7!8XHM~|y?a&S7O-$Ns% zh(CnAu8Ont`X#|bhZBG$@omf-X_qw%8h^nLi zKPT50W;%_SMexl(_Q3q3Vgs4(p|3$gU_b(FySG#R#1&mo=nC`X;);Pw$6H_t8Q8%X z1vI~4tp=gB-G(}+z;Tlg@~P8q$rflT?R?EZ+HB{uk(Dv1QyMsaAuUA5-uo?2!5=22 zKmiMciQ2);k3a}mFB&(<=Iu~9SKKmBhTo>ngQBBep*t^ZlE5J2v-_`LBWgl3-?wqf z#^H0&tAM)>_L(m6Q@T;+G;+QrJCi{HZRqFnQ0r2@5)vzJ59ugb@l>uKD1hgLfshimiKX_tUvQQVE2~oySahqMZA>X8lau?*FI?uxrYp1>t>qh5Uz2C4#D~-M z0-f>-RfT&UoVYVWt<~sDNWID0mjQ zDwMy%a(L-hq7v7R$p1=M;-jZE zQINPI%-mdHet6zb+4alJg&G@mXe9tf`%lVq_ioR zB2Wh!ql@f31{!-d;ERVG9N0^$-lqP*Hj-=E!p~>#Tvxq~A=Zc=DqFHc;gA833kZMX zbPDvju-DRD2Rn%WN96gYT?%TAn;HP))wHnz8fb>%J0`J#vCSRl)JApT9JGOg3l%G5 zih3NUrtJjqFQ{?#o*7V^Yv^6Jb1y>aiG1XC%$OpQ=rUpN&+9s>DkTdsKlyFyuj_*k zhZ%xD$iM^ehz1u4etmEb45bh4xlcb{1bm~G*3c`}=eN3Rr z4n;S*rt3ayg&EVzg~~?}5mkpbg=?6QHfxV!bBePO+9BGLl}nLDl;VU{u=Nndt8%`Q zI&+>~Sr0cK3XRNevEJFnD zB#EyLwoe{?DJ;hI_BTt?)C?Ubc`~$gmF4ERSI-VcU9-c%q2&L%h})hz8*OjaoWS&$ z&_Xwfgrz&z2#ldum@%oG9<%;Mq#i*P@<5h1RF%*Zy~I+aox}Zvn;^}3XhXK)KqM@x z(!=F|G6Zr0|MQ3tm`&gNhecZC@C(r(E%Ebt1izPy==3s759$jGzB}0=!U;t2bFV}q zQ|o|!0jba^sNxJ*Okww}Uh<0}TQFsKUkzu;#6l}d{GJ=AGi0WDxI`5OF3^PdX-xY% zsF+t9u@&l!(j(}$oL4ZvsvX;KqsTVImC&1gs^RDNBYYrh)jsDHD3VD-H0~{{sCG47 z0a`I*E2B-TYv6o5%5x5_nD{H*qWdE+imWelU98xu>_=A$-5BF@=aeiO6UIVz^W|eB zvu?RMdJXT`@n=GL$1@40MYAs4ih!#Szq9rC(u^h({#PcyuSLdRw=Cus*Y^G<Xx+!+Gsq9s!Gm8D4YktIMMdL9o^S{mRh+w(=tA&;>a7R@Wl)50IhOv$G zhqvfCA(13oI^JdANvk-|LRPR&j{tnvh}tZm(ZAKHY}F0|9!01}&g|0EJPk0@!}%9m z=uG;Az-{P7h@Sjq_M0S38~-wce}+u@}m+V2flZZoRIG{%%^|+ z`E`?@@Q8=^6&m>~OMM;39tyY8?@+g{Y9jnX{ey0HvYrU7mPy-e@lcbOt8~5+x~m8E zv@BZxj*he;vZf%7Q%EcOH5Y}w%3&}U;d;*|sW_(4_Hpr)lP_mi}_{LB~*d|)iKH{ zAa?2m9ht3Xd%~`;*}=mzL~||Ls9WW%?tOI*ZJNs=jD=-UCdQ+BPvaD;bc1;7j`ts! zisJVeXCGKuR&!vR{R59Z{-)W0Td&`biCSoSIDZAmHS{ptwl98@77-c{Qi#R2#vB?8 zb&DPZ7#=VmI4`3YN3f=DNWrkwP-U>cX+mo~jC|hW55Y~!8`P31ti)^OhQn87?}xi$ zqai~zq9FA{+@n7$K)7hwP504cV{a9m4Nie6d289<{^cZ{?WoaJ7)bbs^)L5euWmN~ zy`QWD+itY#AoVRV<2(*>%Pe2x2c}ER561f}mtljY8Bj$-DYc^)9TcQ};MEs_+=TO( zM$S=KlMz2KfU(od6r_P5xLrWju7 zMC&3(p1S?`j$`ZUQzswsrw5-z&BIhRC9*-)05=MhFbdAcoP?fQnFL3Tvz^m!iLjo2 zzA#n_i!AELXIbE1SYj+`oA<*_n7O}SUyvssanD6km#|%2lR~p&MOo%@zPC``lK+kG z%uDI9uVO%QoHb*QaKQw#EdK78grF(oT(b{9Xt-twoioX!-z^OcQTyapcc0vh*4;ySTt2=~8e@)de%o-e~Pk4+OWo2PO&Z>9!_j!gZe?MsYQrSw`ErWr-j zAcfyXjgGd}#Kwf)gUCF%+E?h&T!*j&Gxn8QKYDmxVRNZ(j31ONm`E?v57t%meog}j zAo+Rxh&m{O>M;lvdp4!*!dNe+0K5^h)9W5CX+3HsFeCm{(q@%Px(X_3O4`&MW^~m7 zGUDji9J0^yF-haw)DJI4!fv%|N5JJ;ukBQA48}oC1JzU|63Ksv5eyv^{VJKsAereV zfz13H3du`;>Ih8Pb;3r9iY%lZsBkfH$H#D-)m7mr-MLb!2f$=@6_O*yuX7ff=yyNZ zA+v!0s%pYVFBN25lA)nnW};5(;(&*rlYl6^z=8SDp@jQ^wF-Sy(r*rKGkTH!99AYU zWOTCZPbKkHd@6hj*b~6Jb@LHh=q3t2-GN+Ai5mzM8aw}<22h;40c4`ue%e!Jj)kcT zdx*?+!1wkqh2V0mHJ%uuN{wK|;g_z%84-{EF16(;5>K&5NF75L>e7OG6Q4};rq6_!{_oZPW> z4uj@>8j=Ie8>sJL9h)SDF#F%fuIOUUQm&oy$bmMM*$3E}j-O9=TAvrlmrQ{x8qzWw z|CDN{ptW1wS0Ef6ro?-OC{H?t$BOOm0+~sKbYc#eVnNH`xx*NY+)5o`x1#U%SZ68R z;s1##R=Q@AqEi;<#VuMvM<%u{`nzILoGQh%vX0~MFZ2Gm#>4FpQ)Rqz@{;Jlcq9$D zk2Ld1Ero1xl{>gcv+eC}8Y2g(( z3eGf7ZN#P}U+GcqZV9C=O?#)c5?)@Mb%<|*Ny+*aDeK3Uiw~`996PhGats}!hoWg4 zEbtLgl?hrCEvGPA!^5(;gyYGIT&?wGCYCwt<0G4~aF;)o#hWv9^1uHfn zdBs|wi`3LUuFCchGd$J4R2`O73uARyay>;qkS%&%54`~kMalxw_@czHIO94k4+?S~ z)viY8h?4OR7yxvCV*KaKVZdLB%{Wd2ygcX#(KKAK`df~TWTWS-m*$x>&;1?CoF9^F zmx6ezWpz}uK_vgjP}q=p*nPUWrd73Xe}LE9#{mP%Ag#4J0@@h6WQt%2XZjoQ@<90l7C2&}MmN!GeNnrC8j=sd( z`p!Sc{Z+QzzWV&U;Rlkwxxaha!s6!5>bt$O65yTHS5;>Cn;yUhN;_`?xAd*lThV3q zNGG`WDp*bd6Bq8T-wpD0Do4Sa9~2Sn%`{o1H&qCUhp@@M_^Om0vo|;?ZJnRHs#{2W z6xAp=8jqpdvLfn9PQAc^K|Zdaf)@9XL~tYZ*Ye^px{x%PId~-@W&;PmPj4vzAOKcg zB6uOz#jvKYXNgh0E`DDSwhI;R`NSqHa*MdP{Cb9XwmLB0NK=j|iy6{b+a+=jSopd`2_w(qRH9gbvLk)^kQmka;1h^D!hPb7l)g*Onf{8% zJ$<4y^q(((mp`j8Ru@7Cq;6gNZ4Bln2lX!P)&6sL3yGO(`7@hMpk~qqqRIGBwO_26 z2g;NzFb~v_U7kn4&*=?Qv7*G^oIoajAZkxPh|(QzT;+jfQly%Yf$1QeIuA4iW?ueH zBxanZd*u%B-PbkaXo+SYP zU%SRcxm{y0s`f~)JJdM7VFC@FM|uasXv~&s5?+-hQhSPyqG11tHg(LmEA0V#_IYc~ ztnk+QNfhFoXd!6tgeQoqdjQ}A=dX=ZjXEs((8eu_O?-!#js-p)wmwQu92O>drFXB4aHQQ*;PBtL>RDXRbL3B`uuMWGpGJvIm{Gs z;pLocJOfA7q#B>}|5hDlbB9~OgrEqgI!$bFA6^OB-)#){4QWp=20i?%FVswadk^A>rt2x#iKPV3^QfH)Of*#K2wyrt~Qr6n?T6^3Qil#Qy_IK8sn6nTi>< zgQpBck>K6|IlOtDQS7Ks7ORd(3}k6wz)}e`%FQtent>NL6|PQMLeTi1Dup6YH~fFh z$B#b*mjIt}fQOG~=10sG{(tYrF41R{vW3#IXXIjz*VA>kXd0}w#;oXI=M&Kf+L8F(6MWAzj~>Z%b&=;`=jsN4PNc%AQ389h{OxS;>gszut9$wG^@ z4%m#3r?nDgDP|ZJvOIcOZ+}!c_LOHT1IO8{9d9bDVCG9{1T@DOW!dYUD5|F4`IB-4 zTvNMGP~yY2(1QV@o)o4Zlbu+na&u{EUsm1MS`r?*AZ07_J6ir~qwNR**>p}8PX9u! zEBR>pIWwyB-58Y6c8vaofR^vroz?A{#&+a2dKO_9pzDqw`y`qc!Aws>tFftcDiN(m zqm;_lGWPJ+4hqkp%l@K#RSLfkvLI-Hy(7TPoZb2+_1EWTxS(jvUH=>P1p1{LDqLK# zs9rI41jH{B4gOF=Ws8R4{rc-hf31f#kDR*92ljOCu`!RY>#Qr}*F5DxUVsrO%qD8Pwwd) zIkBYVod-YeNp$SX&q!6(B5e-F?rRad#n^M!@Fo+!YqIK1%6>9xZoNg-5JM*_7Uq*1 z<|3W037#cJJt)0FX^Y$=nLfP;=_9DR^8yF7a;H6uFhvII4c!5%(0itBV@>NytEq54 zXJ4VWbx=qxs7+AEqcBDV!$Zef#y37hoRaXFF& zQVG9Z77BX&5zTa_ag{{$eF#t7BBrNOOQ&qU6t_uVN*D89x?Zl(G)-Lxx*mh(mCl@R z29uSi{;qLBy63}9jG|4YB}UPlgUgmJh7cTF%QG?kZKyJcKlO`&5BBW2(TMZi#?5v5%!VQ79C!ABsMee4%nJ4HdpD@U1W@C1BzB=-pHCiae={h*u#)reMLK$jrmSET zk*DtrR*Cr>p-9J1DGHaWIhmJcm!I9bi7vF&Ck1eM)>YW}`3@#N&^i{5kwJeIQe#D+QY%>x zd=VEiCo(wT*jJQx9^0gIu)1QJWOgRH!U*AT@~qny&^OJiAEfrrCb;DE^|UM`$=+{} zOp>tbppd+A^SOMFQz1LA$!Qhi$)<@i92V# z$M=<+{F_BlX~jiTXRO;r5l43!CvBE;XWo>y!SC&~!CQC-6l1{6?9l5TgvG9S| z{^G`J_4Bjyi+6vSHUF={*T4U~=hCJPZe0Fm!S1d9=3VIYUHwNJ@BCO+lG~yGx4nLA zG%}@+^wW**QLnVxv-Z;l^|q~d&bl@_rQIu~aTN4bto(Po?z^Yve0pSA-0s=R@26jp z8yv=e4w?1&*cqQ2L->i(@Bi-Td8=Lc?ox4k`Q;nYlkR_dB+U7H#@)m?@$J##tz@b2 zkQCd((fZ%w*4s`y%Sb7*NAj+RB&U(cDWyh(HCA#N6|-=j`=?~aJ2OfO!${_pH2zfi zdONoc!pE*}{u0hGq%Q`F~*jW%N+Y^A#DyIH{-70+hu?UU{ul z5QbM<*_IY=pczG`1s^Hhx>oO_%;ZuZ8&}Z>SNPUNrW$^KQY7RR??0tXn{-?Xd9GBL z>afnG*UP3Tu9-?&zerd7)q;dtV@k{y`H}Rto$s&`pOeK^yoaObDjFL;q)ak8&e4Sp z^aWa01%-}$M|O7a^3A4>fj`Sb_wYTGMwz0p4y)$$f4ullYBx>6h7I(&KWs$@0y1hJ zEnojo7}glB0^ZMHUrqY-2_Mp(oUhW9kFW4^?eJ#I=Gx5}kNZ$l47<(0{PbyB^IpYW zQ2)|m=%FNhkwI_517zhwIc#)3Uw~KFvr^DqYP!IC%kW|o_pB0nf`;8wYBjqfCCkC> z_TLiP&;*+QjNh#)KKlM8dtOQhF(qWhTE68Mbz3i4yCd$6Ez>`5<~rD_P50gVi+?}!V0#^l z;g&H@d6xZWT-@V?m;bnFIfJKQ@A(6XuCW*LGYt!hTVKp9aDG$3=g9_C0%H`L5*&h~ zzK#~Jvhyuh(j~|Sia60EMJS;F$+JIwLI+*O8=|lcdmq0o;+#U4KffTL)}1cnGzy(t z@jCCH*_SnE>rxjBd{jE!`VDECUpIcdGSfr}FD@3+)w3OqnQB`9wB}>fKNrGK1Uhog z*l2Soc8gK`$|#rM%;95i-&JyJ4VGIM@r^9xP$Hi4US7q=T0@>D;hu=)78cpuust@u zn6~1R1}TO`tJtr=zKQn=BNS(k17s|g_(_wge^Y=dxaTT)PpcpBgD8Yj-=_N4hmz~p zi0kgI4U-FODe*dzT`V^;KN_MzUsD=uD(3po@vQOJgg6^~h5w zkse9>tlM`3?y=|PWVJUR5?mrI3SV3Ii?aJ*+#m@>HQwu?1h>GlqHi5s=YV5LUlLY` z9R%*Ee0fikIlS5@P{ZymL%$9z1lenhmW}TcmrvjSw^Lx+XaBc!*i5-_=i{15qQt#h zNbRy&FWxqDCLAg+>nCoFx^=&#%mun)1iuC3|oj4cx^0AA@Bwhn}3$x$DTmTy) zOC3$0CzI|d!q&&ZBwag3Z$G<*LMDz^qU@BmTu=`~x)R!r%m{Vw*dL_wfKhRrr719_ows!KRPw1tC^DD?qt_!N0=7CS-o>5GV6;=p_zoBf?bv9}NyOkyHHJE9C2T4Q(huJ^ zPovhTZY1ISZmkJO+$)#yz9zBzEeQgKfk2)P8!G@ z3P);QI)>P>JgU^W=TNxD@D_Xuy!{zeVNR8@ruY?YTBj zoAa$NERE)$zJJB^{>7d5_7_JzzmCOg)BDqusDky|x%vCcqMnaEd;JZ$jWmIhziga% zB69hVWbT>#q74n_(~?qQr_{Ls;*Cz=`fss=i{ziBgy=KZMSc*i$)h1VWG;)Vy-`Y5 zjG-!?`C=r6iFm?&00=44`YVl%FF$J(4(0RTmnxlC+{FsOds0d`jSYQ{KaL-CsT7jS zKZCc@CDe=jG9^KreBZ%eeUV1rlwg4P`ZSzxlad{EHIIwMxob{G3MJ!N2%-G`GE}n9 zvtetXFZtaUYLj3K3dWu|Opak7-+Ky2&8Kny~4 z*k%6gMJM^c_Mj4)NWa{dOe;T9GL>5FrY6v&m;J%lMfB%mW^!Eqi#3iIP3P9fRcGfl+ks6Zc9NqEga6S$ntO7b9*SlO zFDjAUtBu-Bjr%KsWu|!_DZ`bUwQrXTvy^2e*2A+{g7!dN^%sb~PCIiGkIqj0nm@U# z&K#S=I=)!8CMglMc||N$Y}{-mIkfhhYEaH@ofH#yTxnf>=v61yUHDfMx1osyhV=#Wz3kIPEJ zl)fX2%wdgNQ=h%B0?`;dei7?>`_VP2!Q?xg-%r0`dOx8!>hHEngUJ?pR+&-p-_aeu zj5kf;@6xJ}TJuSjCdCBvF3=KV`{dIqEo4D<%AbFpNs_(cw9CRzEQH|@a(_= zszKRa6-G&=uo;TLouGtF7hijs2&pVfL(M7fEebx#;C>|_w2I7Yois%yJnPmkr9Y07 z#eG%n(&5GsTm^P`Su##0BPKEyQ|pV_d_O>kFR+Z5`|%3(sscEr(g-K*kgWU%Oxc48$s(AY{wxQ1kj-YHdp9}${%(ni`Iq) zyivrzTuU;(--+QAwHV-^VP%64)v7jzD`y!G8qpN-0rJ6ygS@uWEdkYf+!nVwbvsRaG*DW|Rcuq*a zq~z#oy^`?1HPYKWO)sX?x+0?m&+Zr{Q%b0adrRfuD&yYhUQT|MS~l5u2Cq@1exo$H z$os#zz8u}{mO+t*^i~2RN`*z(_}&85+@GRlHtOTX%4By9dW)XNWNo#|xhTB01qTNB z>-zoz*(x3GO17E+=jc=6%dmLxtLx`KORDnj*ey!u{oP z(-Xlsg!a-N?AktQXAo|-1_A-`f&Ye8VnMzevx&P%OK%vpBIH> zF#-nvesA9GKEFw{AddjP<9;F#BR!`)6qqT3u8MC#BjkvVbZ145WN;Z-8R{^x?AMge zmzx~ypZs3l*2Svh_^-QHo6(7;L|EvFQ-~RI*~!;kS7cR2zFqC{Q)-2rCJISPXfyv* zE1M@)Kir%a)`L68mW%vHbKX(0eo7IDUR^EiNhg>2Ay@dP#0X@=x2myn+8E9*jT-nD z-&sNr+U$k-Zv<@PsPnsp!dnkTf{Nv?5h$U@I~@id}?A z)mi;6rsj0&lTQY(>_4yJ`+2i#bR601($lN*2h6|dvNS44J9Cf!)n)ih$rZ7V4tc)Z z;`x0zM10LDar8VuyYl&G@X61CD!s&SQ6_=70B!P{i{8nviZ)?IfV}TjS~y=09@ZFq zaxEK`iqYLBlv&(ZWgr%UDWQ54B!OSp9B~5fd~sHwx&CL*IC;m-Y{?X&l1H<_J!K1i zmj(i;gNf2hZAcz5sa`~Y*X;=YwU5e`EC&N$7&|>cFs9C4>O2YoT>LNl63z)D{(s|9-{F zD$~g7VsuyP9x>+j&qtd+s&T~m{6Am6``fqkdwo*lg`!0<&&tNbgdV;{id(RkCY7_2 zHU|130O*CX^s>IpfJfcmasVCXLz;?Gm=mIBK+#`fh zZ#B#A(Jd_2>O%7Y49hqN#{%;>((O#0{n>4bw%hpR-Jx@?mGd#Fl*rs@+K9wrah4j3 z0}?6bW3AoK>~9{^TGdAX3zVFH)~2ZH7pvVa$Mnz3JvCi#`->lvd0Rkxk^jK~eidF3 zxJlKrSPZ@k6Ya&T9D+~VX?m%Ia?1CO%{2#v=hCn)Gsp^5;aAR%%3wRxeC6`&i3iDU zqBgeR#AKO|BXNg?rpPy){GP)!UpCdvm`diHqGqnqXVw_eRJG;?3Wm@wgckq9U5&_l|p9^y)#!l$biwgu+ zfB&W2599w{oN1_W^1;|)k7>1wMfL(&;R~t5y7#O(m4W!U|<<&)1T?e!q) zBXMXJ*U}${#}wiqRP6jc#7CorW;-eG+G$17mi4PeN ze5%b!GMPF#=<7HC5x!UO;9X{uD4ux*cFm7K){MG{1?JT5wSD{@iT^=wBVbam_QPU= za2Sk5Hf_blj((_ET3w|#HF|I7l3mnS;xgz?@fGSbumD~HoILb*{<;)_)wfV#>%RZr z1k}@)eJtnx*oaLOt#y-Pm)4aj!`+AbwLO&PI^O&9h=4onGdivShWD~1v%h&l18U#f zOEHV#&``_=^;HD^-;V;sq|ez=?x;gBELk;_taWB62+?)UKB{fiqf#jO0 zJKw`8q>SERddUxO)5d^_?|&*sAifUfYwo|qHXd@UF`>EbkTq0K5=FZIGsXNeoHepN zY)zfVAZ5Cz(H)^cv`+2#ik+I#=z@D>8IrNPApS_*g(-iH|62*X@c;L==UM@re@Fa&|sso0!z-G*Z3#AIc@%i8fP;K7^YNQ4<_Zpx3HhO61`(X``HQ6T2Ye{InID+;EepF%sOX=r>jl% z9ibn_Dp*_;*xI*8D96Sx57>sJ{hXbGW+|fw9-|iFWA_CVzW=@)6X)dl%}VaqWm3;a zCkh`)$w{#F4_3fYApTXqRyKJ2g=isne0EHeKFZz?%ZDs}2+?xT=5ghN${9XD#dL)FGY;-4C)caXG)n89L05|7UwpQNd!5aVXlATJ zcPe4Uv;qm}pkgUzH0Ip#zTK6_Z!Px3me}-18++Cxs)t(zd)pk z3$EQX1P|Zj*(pbZJ8!<4x3g6>bY7M@__1dphxO%)E3(kM+J{S0x=>9P07>b%!=n!VloQ$z`rX*coKtH}}=TFcjGym(IF)IsirCfeGzHMUn zjo*JA)@Vz=4smzx1=eo5KH%T4sy`E2_dVy$h@jf{mJek|Q|OKq))*;F&AcWx^A^L4 z!{-#tvfV<(Fb(`;E`6l_+6aZlR2rO5^}OTnYED#4r3Agtf*(PW+ZX&=ZtWMGmK)c( zA=#aZ705%IPuw{-m6GQIXgrrqPThrI;U4o#(F6wQCq59E?Z&_3)8 zc1-SP%6hb-{ICMYhHa*3^sIlV6hfonZti}jh&@xR$eB78ORqIvM(p6#A^U1_233ln z!VVbRQbl}W$L|+PxC?m%doC(YD2tW4h=^RY1-@*?AWis8_~9{>*$AFXHDXHFIrWeZ zBKxMZP8xPz=IXAKcsjf>plI$c1?{>~teo?8@vI28SeL}~1DfFZ^HR}t0C3JLI<~(! zoP?7UFPf4RJ_rR`^@}xolyF0=N5;zaK+;AyL4@~w$}@y!e{nRKYX{hDw0OQ^U5Eo$ zI}kd%_^b7j!e9HHvel63xMAbd3JWCuBSN62g-0{nS@;k^Lz$ zpR!P4_`)M<$uK-ach#3_zJ7lKUR-<@rw`?tK6Q(~ZKmK4XE8StpX*db>JBcHc|b1) z8f^fL0zjjABOG>Voi2f?B}rSR;XoSY-D#9xtKT=v4)X)rqjri}eLxJ|9vM$jk8Vi8 znpp>TO(OKgoCCET_9vTMEuR02(!;@FDQKx*#Qy+Pe}Y=-XU=<2zWyo|qvhyF)jQw5h=N2mF3FjfV^d-t4W#Nr#TS{nO*GH5tnGhu^A3eV_wH`Ex5?wn~ zLNaEMQhn!U<(zg{HT*4>w$ZG=3(IySyny3B|E|QNPxgmUJr(yzvZKYPxs1KC&?;by zi44zSt}lt*e9zJAVx&AU_z_P2C_gR7Aq=s;0?qx0Y*%uiV*R!)EpIj7NdJkOlF;?_ zoU51n&KP#MOWT~d>&>5Un=$He*~56#nF&L?y!clA*qSe7s1VJ4ks2Q zx%RWRvkE5BfY#WG>cOPIz+_4e^>y)E$WUF&@wf|0w74O~K;^kptvu6mE){@u=kL0B zuDxIRX}m&bhmoNt0^GE4?2hHTy(QTfA=A&gaTP2Fj^!G^hX1 zI_NMZfa}o&*HYTeqzkEJ3xFYgg_LiXY&Ugua9_W9i+@;SB`A$!O!wo9UBj_Jo*!5U zA{sR?O_=+OvL|%T7{%Iy47zIlM;RO%WDTV}6Mle=!UM?|AH%p#o6|o2xcYtz#f(kU zZuBv2aPd8=|GojMf#xdaq4#0!b=dsiX7+RUSe7P*#YLMvY^D;kwv=Z@2CfBvGk8(C=_d?rYLqEf&zWQ8s6|rGoU0h!4NwV9 zo<6PdW>aAt?0H~NvI=u5?6!9M<##3F=GoHn%;nj*F2(-08F169xnMD-;^5t(?e~W& zJajcVqmX7~=X)rC!fV?oQ?dLKMH=rJc0C)Zx0A&fOk*f~?7y(3`|}g}mF-iWMe(|~ z4@5bJmOuLiVt^m^WYbNBe$oHBB>*uoBbl>7)4SXQbqCYBJLW>U*8u^+K$i!;@D-)c!MN08I=BTQ<$K-$!Z=I^^mX91r z9&L5!3u6kX1cPkU!M|?dpiI^k%^xt0nVSzsl8j_wwU`!x()Rt%z{Y3TZOt~mPm#LA zh+@h&2*plMmJE;@(JWAbH4w`cAdwoRYPM>#XDblosi`4*Y~$SI&ZP7B6W9KLc`BcK6)|Td?)FGqX8>5bSEH?nbAbD z2&1qFK;!yxtuDk4Hylmvkks1Ok(ETbsFv?zj#8WtsBkU|h5LI{hj0h%O` zuq1Rsha{cus^`1UTfMwh9q0F*^ZoJt;W?hz_EPoMv)t$2`=~F#f?f6VXhS{+v?D;N z)J%77|2aUwZdz`qamWk#9g70$3F;}Y^YgSsG~Z0g2LrLdg`?V&|Gh+1{vM4V7YAXV zNQpR+MlCK?EhUmTKPcd4`;~6ih^Y3KEr9vF?xO)%u_T8?wEMDblwUM46ol1fPd*DU zbyD`1SutOKgu299aSF_OGYV-RJqSN!lUmRD_{w=$LaSRG;S=dqrOPTBXrR~Y40VLj zj8ycTVN&53DuW%3~VA?Rx-WB%=;26LsLtd+FN) z0fz;HKBK$;mXERaGbjNyE&0?sX^MRXOHTPBzbta=|c7T_L$YVJy2HL}NSWJmt+ z3j~<`c@c2&+XyaB*P<1F_L6%3SZKkVfbB0E*?_kfTt&my(+*sRxam~5KBA8jpTpzc zi|RDG$bCqKijWvwQ77J^SZ(5WzJsd(BQYGXDx=^+@{F;@l2WzxUKJpgd9?xoZI50s zd{Ujy@yKQE9pKps4~FsVHNb6YMdRQwq0;LtRT;QkR>>gs4Agj9qYXayt$Om-urF$> zG^2SSd7hDHB%vq;>K(!huO!X*eKTDY5yc!%RC~2YVhRfAhJhaH1+%wpx`SD(@5b^R z1V*BT)lS-0rfl0cZ(y17<|TFU>7QwS+JSi7S}J_&w+`-=gYUcU%r>{-yv4|vt8HcZ^UBR8pd|j_;->*$tNxx6hZZS5JYgqa5;h&75F2m|S z`&WGLlzV>t!gZN)?o=AZtmbea41mF`nGN$gkSi>qP{&qxA9deCFlCBF zWQe9}Fl8asTWe^j+?n85E~cDv35hEqe35;$i4u8ACF;Z7rDTrl!Wf}=(JwUMM~ai{ z!y==Af$g3aj|F`6EJ``As|DOHhB7lc^(pAob=&WXs~2=Ko{tBc<_7@K<0yqIojOp@ zQRp6%LjO}`sJDYD6;4KZ)Vw}aCe|6M;cuXGhVNJ;YGqJdHBxjf zW{y3I&=B|B`Xn8~_}Z&@ow8?nK>L)Or|4iH5&8K8OMdPb0TVaU>amdLNMC1eJ-U=N z`JfoO6L_v^L%dIJzjVwfxU>V_E$KexdZ@V3sAvULt5*Hc>zZlpuUQt`xMJjub(b?^ z8#^C+YirV5TVs`_jkjKoy(T7prl=Nc7{jwAX!m6a9LOM71w*$YJX)$nq++iU8A0$# zTT-VUCpY?~E|}D4EiuFE-IrxSub>9@17L_WwTc0bf3S0DR---|L~?#Su8e(|`l5Ep zOx)(9yS7-&ha997@^~3IHw!i-EC;n)A_lFh_3Pk(?8Z6bHa3VOI)EcSD#3%|kt?Q= zmsJLZ!(a|F^^zKFRET&OiOT>q6eo!X+t%jA7jcWRUaoNSVktiPO2Gt!iPRFB<2Z$r z(;bd3bmTpGK~SCApRyl|8KrBzQQ!S@0;mg%Kuzf0^1*(hZ+`N9oc~D6#%EYVJ6A)4 ztVa@F6B2-0MQ<^{-GdyxFoeRxYa20_6}9u2OK)QtBvg+zRoUoAOUdfmSr zfBIcb<&yEX=L3P{u6LYbb?xVki2MQVF~9adW7J=b%Si`}__!m6GtGOP2G6Nc`}@_p zs@;jotdSol)@zkbs;L$Vp{2Vv8 zo^LKqucvL8vZyjDB3}1_U%^7b+xT^y6+g*pLC(XJyAegdREx<65(Q4MeYw?084zrv zGasPs0aqAs37y3f;br~jFrNn_;s?kT(C)HaY!TRPREO4O>LXGo89ZSPVcPpC{X4nb z=di|eL7(d8aZmU#zHF53r$V8}4x;J70A0v%f&^=4cc-Ip{_?Uocn_Fmu4p8!J&BiC6CKGPR3AI7QH}a{-1-~2gZ5BfKD)4a!IJu zFQOz2@gMTek!%wq4)IpPU%{uijg+3~@-+v-$&Xvc6xMf|F@(h@^JhwMdkM7{Xk#rE zRR)r;DW?zDjHl#j$DeCd{`On-$&Sg$EF0os(WIQBUEs*%oThFcx>9_XeouVhLwam! z)-%5k97$*2sP1Vj3{0#}Z}q$pySlfx^@Yc#ZJD~gpDXRKK7j`Qqr86lCl}*;8gKoU zGw3Wx^=H!_P7i3eV@!JjHla*+Pnnz>+q*`s2b{9_01XpNhbq-PxMqHzh6Pd=DKd@u zhE}1={8gHlh#Lag5gZ?ov-B{10tehZkQ^Inm~>4Mo|&S<<3fPI&Ac=fvhnh-t{UkJgj%JmKm1~^<7M3_#v((@4=T1ck|ixNA{3XuMRLE^0uCzVR#*02uy|=hVgT)MG0j362^3J+??I)LV3=rYt7S48)PBZ#!`+Qf zZ6~xtHVBB_!cxkQN$6Ve7?$YTat|O4nX)t1=m>SzI+7!QTs1f0KT^W$X0i-5;U|q- zwjS>^15^8dS)TVL)wDEbe43&5SW4G|nrb<*ckqer9zWg4xmZ}DyYRRs|4f7wNvLNO!MI+`nq7(uQQXN7sXX)yreg=QT z)rvXp2>un2@Z&-3@?a6|u18sLaFS#!%N;kDrJw6u`?p7<f>s$y~Cy0wL(OLVHPE6{#Sr+&f>f8rty_I4qz(}9#CVNquPfg{8P{9e}9c3yc zoRKjOaO(`iJ>G&>KTTY5fa4Yd&a>f$ae}(qSt`E}a7!DzOyHKNosR>zh-4X_3Wg{c z)ilmXL=Q38#xHY&6djHSj7Rb;2e-AOWtKC%8m-IVa1aPL=$Lw&^7X z%0Gl!1!(MXn)ACDX3;QECfega!>MB{0Glk0+!mlR8hv)@3^xQ%9%ePo{Xn$oLn-z% zZ2keN1=zVqj$IHk$H4>S9xfahiw8&R>Qv_5SXhm!eQ*FG%2Dj*kh1*PrLbL-;Y2?1;4n3_q9=d|%%$`RmYsb#tl5_Vs*0)% zlcU-7AnC62sSbgThr2R!j#w*z^k4;SvK#&5*B?7E?$w)Tfa183a>hO@r4Dz;Qp340 z=5cJ+Q{7#tlN~e<&1{_Y0T1`~>Mr_oz(;|_Sua+8w(H-WufHcyK`#~2#=49CWKf6> zW>C@YL+bN&%>sE}s1GIncIQhAy4-^bv@+nqgVLi1^|l;LnGPlr9uRa4z(aFls^yc( z(N9`l9n4Y63f(2q6vEUWXN9ggj#(761vNC+r}ilSZy5SK4~{yj>mWBR)US6&AAgMQ ziaMQ5?3o&0TrglTxn}k&W{F1tU&>P@@s_i=>+DuehyNHw7cJjr!nwQqMR~q$;q{0f zoM&@_=W7yfje=G(^+&vb&Yb+JVdKwTm^oJoR;B8yn7K=+J~{s7 z`5$k;%S_B@T$`1tmc;B5oHi*aEvJ;tc$h<3&Ya>@1w31g_;4+ynS6!OO{U};~tY5YvM61(JuGd|wL!-p5 zT(5y9pgX61du`+WbF`bAp8ETZb&uUxSCqHp+L#*}ogNG7Bk~YtQ{yohw)8Sh7+wl? zGOCz0&?s!D#Oae~h@%Mtce&0G?`MWTEA!D&W4N;+1`anHoX1hx4%Af`k2VYlJu{8u zK0%!A%LX%a(8|0ewK8$})RB^V+UnEjS#~ZM6E8?`7Z;{UbNPF}X{)sq{Bi_+BG_7s4r>J?%3x!XS*oJ?ib}qjtt{kF zF;GSj4^<5yX@iMbJ}~O*qR~0_fK)RGY9nCrff9BZY)lTo905yyPQ$KSpbkR5l`OZh z<{%rl*JN=_z>IZwsk)Rw)OhK1;i`9`gDZRvE^8uCxuD?Ud+yYoZ7mTXLaEqCxe(tC zjKU>tyykN10u)c1-O?y%x}eGRSDc^;E3Aesu~)DeBJWF`=r4kCI;Af zAfqbNM_~C@qtk%^jo*j2F9WzEIPb`7GaeAYM&oz>c0UaVi@`LeXg~|M<)3u zJ$u5~`E8FeTbA#gwq#yP|JMp@@7}PoKrQkWWYsD+w>U+6f6^hm$}s8QN{s@ZN@ye) zR}YCaxWtZwnn`Zd;%c-!-5uGa1HsB!-BZWJ#?HFQt4&N-;>*?Pn`!#Pd^1Dug>Jab zbR%Q?uh4(I?bCjOtH^9R5d^|D=)H!>ug0{xHAabL3Tvz~p|Mg;jTO@JZaqHaDJWzx zZ1eM?o?*@nUo(;)uZ4xS^osUILI-da#8;#;rqOn))m|S>&GF`uspjB7_Fy;e9}^i5 zm#bAwWOP#pY7R|iaC=iw3$rAmg{jd|iO5=+-+X}ISQ6x>Uf_%2QxCa8mX1G3eIrYc zu2U#prAf!>_GjS$h7gApHq)AvH-1`AN^A05iQ2@?Gqcd3af#3A_WGD1QFX%_K2-V* z7?>36j<$YRX!)WTAI6`en=lXr)?Ih?(FkYu&hA*Sr0m4^4E>HTT-2>`YMPPUqYvFw z7dV1GcOV0a#Q+jLkWU%i^&>x3`Z9W6{2{%Tu5aUawNI_o*vQ7&a{SJx_onW>b^B${ zkJEkbH+pz;TfDTgby~^FOfe#KJonnq!#}x-Acpy@`o6;P_k1QsgdMbDc=#q7s}K@l zsft54IiptTs-JHvkniM==|fABM5~9FaZ@a*VJg&DB{*9os7>$(z_zgm+-Hm68sk)L6VIu=j?u#B)sPchM)LXKMM)`pFNBIHFe zB1}L{YWu!yIEL>l$Zrs>I%?HgXk@}YjENn=`VMW#sz^h;O?M5?#2m&(UK7x_QcI&F z9dUl309&v^dq zr*Y(bwOsWzTd(IFrOclhQ&D_8i1E2CgP7zbOIwbkP)$L2&`1P1fm>mL`1O218ZrbA zSq~+#eI0%>EcN%U&&NB*HHZ;9!Wbdc4Pa^9-89tCi)>wn7XK^pAOv}}<4j&{=S%cw31G07gqvt^bP~38 zF7aNt&pU3G!EC@SsUQKsEmL|jLTNZ3*N%rr5xV#EjmKUam(cCnt)(<}8L`)hbmPQ9 zJji=Hrn8}yAn{CZC?JB|Tt_g2iHZ zZRL?2h1Ju-I?%wIPe+)t+*uPabm{6}8Xz@}Gqm@C7h18^3j{gHTF?`7fI0kA0;}^` z)Q^_U0!ZTdnGED0%1|Z?E&1REU)iE9vEV5GsXU)xY&zF{1S*U&umgUzW!hEYQL5@+X7*ppiVc> z7;Pw5C<_|+TQ1T2iT=O!8+$1x&4ZD(SCob~Eu%J#YxyTQ5tmo$u1D_`t&#RH;z`48 z2(Dw4q=3j6421X*sF@mQ zhkx|ZzEwWpz>o$@;wkVW{B?%L6`j-%W3<w7hth!DJ7f|A)vskau*7Zbx7& z00J}TNHIglmAwA0e6ldC0iA;6!+NRgcjT719ou$Ue;4v{1?FktW7nM)*U-FZHN$=R z$bQTv31qbV?E=-LU24Vb8fbs4S88o&vX^cs)Ug3HW|Re?=e8J;;}w}7(Vc+$=UJa( zrZD2KP5eBtZa}1ZG=N)ddrnzaU=nuTw-a_IZ7?#G0GNy~a+BgT0-nVIcQ?#QM3I3O z)rjA6xarKle(H1&y|G7JlP>*EZ3%dOy#LN=ch70$oYP1N{1ZgTUt()E#pr4$T<+pP zG8iH2M^O4ZqdfGvMS#%N5|p{`)RN^9UST!u(6#q5b#+P)8BTmLjs20DiwQwU^CAe} z#pFg2Xvq-f2yeTg%x8)+qSj@qc>M?U_#R^_gh68XJetbZ{KfLPLs{$BuC}QFMOaK} z8`Uf06i3Zbwpyws4(53}t#1q>1UIdwP!&F-E4-R@c*Q7y+KaU>10rE@Zm9}sV7X1v zil^cVhC`t#9y0V4i2iI*7CJzXqJ-cf6cZPNYm0HmX38CnG-%1CK?ctS8onJBf^~#9 znPN*Gm4@y-dU?ihJd2U=_-)M0VNxUuUr=z*>troZ%rmNP+iF%a7Byf8#zyTUn!|>( zWz60JQN%U}Zrc7HR;YGQit&H?siBH)*;@vkXm|DCit$HnZiqg$|pM} zoANi19?^VQMd`TSD8c!9Td6!Cr&$tPJWvs=O+i2ik;~c`8jLqs1z;N%V~WZU_5|cI z+i)3bETx|Fvo*aI>na|muIvaKvgQGmrz;VdDWLLN>WAg9fesRCSmFPSmnt9tDY2s| zMJNFZAf!@6b0GrfvzO>`LzzhF*58F|g|q9tAyPRWr;h^`|5iqOAQCi^1k;i+oYimv zC}TmboK1nYiW-)yRp_9E9$^^k5l&I|Q#x4F(Wg?KY`kr_yFu0+B}ceHULM3_yAR;1 zD7d;%7?|>YR;W&R*mip3J#0b*z^P$8ab`fK4g5eyn$GZgX*&vrhYBz~mxE|I~0`a|EXAXVgb=(U>#S(Q7^)z`5@z4t4Sj#A5nF2Gb=I|AcSm}IE?S0Nf z>&I#Hg|ARVeqa?a6sv6;k{`rXc)EMz`IW9&KsCy488$v?)X&-;WAk5s+TH#3!LOW8dZ+g5U7lM2 zDP+;mH;_RgFG$amPyj!+aC9X+md;G4f!MU-hsT(BTo@6?5heY85!!;;=LiZzvmY3C-1>uWST4^yly z1Yw*x9}Rw__}fGXdu{AJ2i(E%*B&y33rhS9zxt7_e*(CQqDAJ>jHblsqBELDlOw7> z`rBDsOBV5g5LtGyHOszOOZU&W;AHcdtpLLarwyYyh!W%LFDyDv5&b|o#MsfQ`U|TH zrjk;AQ3Ih*ItQgpq=6_9Yf$fHGCLQ5Y*BKeQQ*|wUz$XkQB({~UCp^byntBH8moHC z{0=h~=<%svG_CxiU8BI|URka=gNvR!{+CA65@VcCw3~6(QU0*2Y2{(irHXuRK}WSw z3malE@SIi3#QY7!miN^9cfxeEaCX|UKkNU);0m;$_-hkbgxJCC6x*XAtf)k*Z-Uv~$W=qJY#AYCr7KXetkTI#?@Kan z=66|`F@jd+2O8&sznJi36y)))_6c!Zy#je)BoQd%0SHdM0P~A3)f5=2F4g0*n0;&Sfbrqk{{sP)n~;M}AP8g=7Jg_4OPs zCA2%PPHk;UqHW^8uq0o!Nx(-MK9^XGV8gK8eam49Uj97V=KZ>R`+K;%r?C)Eqq*6K z`k%h&zNu-KasD^^pI)-)&dR4A8{V?%{HLED9i%pV5wq{+m{XlZQ??Ecp znt|HRZg=jLKF1|mV1a0W=ad+(l^9-Q)MvF*v=_Euc7fI`soAG&KxG;j(V7qBD3Yse6BMj)9!h6gn)@`DKMnqX!$@uwR1qW`3MR&rjmu4 z<+&U#K|376FmdD?MmP@T^uiewC>CZ7jwO!TRq|0|iUXQosY=9-i|N&5)dNGgx|N{k zT1JOJSP3z+hZmai==L4gLJMU9O-E49|alczoA1!>OO zmgD4sr)x^_BDOj4EVXiDHISvNh~~VefXiwZ@WYAe02X9}P7;O^arnTww~jvspJGhr zPwT>*2AsPryL^A27?FhOu6~7$btM6qU?>?bvy2G=h~owzVoio8(}xzkAVOtm&>iAy zCVM$_ zfB?Y!D^Hyx0)XazwGS1d?U4JhFuomeE(s2u*;!T_;#KT`AkIY&AIJu@e+^Cd(7DN~ z6(HL;SQ(OY@+7q2!?e*KwaY5SgaRt z>0cDyj8M|b0Z}ORD+w;|^1N^)i~j(5H;+Ni$}7k%$jn?-qp64YP-<9Yb-xAdU5ky_ zP^k_yBXYith1*z2~Jd|o+k~d!P2shCHOJD=jh6lixXknC7 z&T?xpE}5!?MJJsbGOaO}Ohx9&P@6_^3yTSe#;kk7(!N)WRp1(0jht+x>OcY8nM5)v zkfUPaf|FY#*-!B`!;S8ut;7qjof96RG=n&*ErO#Ro6 z%Cjy}KzDF4c+js6=tH?9_}gIs6_h@|5!dwj$G&>M|D7#!AA38bdwy_0OlpY;e97;Y zsY&Q@D+4;6l0~K-kSZmpD0*%J0m@(wX1!4qSTWox0-kqXY(fK!EkicSO5L&-+0>xG zD5somshVa0jh-y)o-x<^ZjPbYhik-=?p9u4FIS z`9L3tKULEDlxDlfb{ceicI}qy^vpR~AK&m~%)6K7S3WdzK}w6xkKQpQVe<`zNz~+- z3mYC@{_bzDR;~Ybn)dvjIiF8@^MRf1ym#Nf@Ygy%+IO#}y!c6?pghSbc-SQx{1#Oy zMjq9v;&~(jt2$SM~1-@CY{bh{d{Eqe0BZ4xPW3>7@eyxK_RF^=xx6cRiy{VW{ z?q7mk4)iL$1M%0&ubasgWg{BA=nAtGpMpE6{&eACVTN}XG(di3P^I_|4)V_f%6)sx z2KX?}g*Y**mL6Sq*>I=+Fy*Q>8Grhn+y$%R{0bR0kn(5Os+R*=yE>faXUf$Z_CJNO zi)PF{O5dUbQ}6OSU5g$&M$e{ype)th{nD;q{af-RWd?an-M}1bziA_M@|U*HfxXrU z0YILjZ>8@oyc=iYt`qQ=Y@PWd#kM*qO9C>d`si>G1FsweFr}C>P6o&LNRYfxKI)KC~Ia ztn3b*YN>2>en49i)J>zX9DH*CONsfy^&81E53oJ&9(0)Cru=Bge(bLCvofU8IM zQ~O=@^c&RDD!whd#qXl?K!WCbaYXpQ20tX(L)C_RtDz3*Vradfmv$#|ovFTBSf3PA zcuCM^OQ~Jt?J)?P6mztO#_y-xeX;nl&z_>z+1;~aY8Jj#?-1uPF9Cw-*3Jq#Ru#x@ zSI0cLtH0Owk~7;ltUXJObjquzHy@_4Pf#a}{nURU#pg2&t!hVJCX~w~V?UYcXLQx4>c}w$d znWrSd3$D5A{`q}%=fb%@+Ch0-O5Xi7Z69?qpdP2L_tPrN7ucbrC|`9RH{_cWqLgv5nVphUAyoRqb;vHNArz%aq2hX)bFlQSL({|T8GFThm6v2pykoU z^GOpHt*ci9U4l;D2ffO@eoeaBI}PU>jgMBVNAQqhZD`wFOKHh!7>{Ly1XG&=AS~V# zxune1UQfdocQTN*`CEZuh zpL#Sh&F?^R+x44YEjhGhZc-)~Vzmf`m!`eBmL}Df7En$8>M}J2@Zek6?VtsA)LwXd zYs#o*Gjsm(L)D!NdcOX_9Zk1Py0K1GyS9n>bBh>t8g4`#3n<4-oIvV^lj$wte}@YU z9X`wjEVq9-`C&t8i-1+S`-N)|L@amzjIObC%5b&2jVU|r5Yv|J&GRS5E``+3=T19g zjW8StH=m-P5x}9!pGz4BPfq*+W{e9EKBwKXm#s^-8%|4<JD42W;*O6lyY@V9Hbl1=5;`IULSv*?4!T|gE2 z8@+%AbkTEFyfgzzO%Qa^(9QId6t~%m5y@#3rFR(0hIxO1GxA9V&dBT-k>Q~hBSCkO z@&<$h&1O_!X$H){mzVg}L6#7>ms4`O83OxKZu8%@zXWsg5Gg0W6U@mA8_daVanq(5 zDd*19d(R=xjIAyDMPwaXQO&iJ^xZ|yxpL28Rx0BAKFo>lfN@FQq#XD zGxGopN7a#czN`o@RpWH`lk(*NW!3?cox}TB;P(=#g83?8jm8RXHqvPm`jao^3Q5WT#sGSpm>07lTp${3c>gS}8*! zl+^;cRIghfiHSbfOx=ZDWM)J%Q?d(T1Xm}JfvcmzpLM?N6-(+=*r31Ag_HIm@WrZj zi)r+02DsVZ_n}VGp@to8ONdB8(Y&{o+WD%FoX_6Ay`bLt9c2B_hswh3JuZEzJ{+lA z*3#;LLX*OEff*Gqb9w`sRMJJ2!%n@i@IbFW`hwtN&19PtoD`5)6KT{mT0yH1h z5)ASXFdv;*74W>48{5%*s6n}b9gy`#Bft2ZgSftNhZ8XR6j#()TcxX9;iAfs&ziEA zYTH`NA*>#9+~=o_;0*^uA3HAMc%~Ns{QV~Zs&Yvci@50}UTsJQwI8~P6ekvjWS)6k_z)0;KGcM8Oi!+Xto%Qh|nN8(#NS8fOM7Y4_3nGTN@hJI` zIn0yhDLzz+?z-<)SKOZ@#@DEmlZ`;K>eHRKLL4WjUrxcp7XMgz=YqT5IN$&Dw;Ayt zzP^nfM?Cl6`^=kIO$H5neu|9GbQ4Mae z9Y)AOIOJ6E3{Zr?%h z-G{FI_dzw4yANTh%fMhGLeCjk!Y4;d^<$3DgD37_kGpq+Y{Wzlo%T7T zzD@v&f9Kgg_m-Hkpk`m?U$x;|EUn7N)T!(!2e1Y^;(S_;IzZ}()gG?r%jx=L_=)AV zcAg~1)hG#m!KUATZF#RUd+4=A>b0}ipT6O`$}I|St!iJOwir!qy^cjlv&_C}3HFUB z{Zz!$N8h4Khp}B13bi*j)38O~F#Tp>aXnOdQ%6z-_6lE*|6UhMFz_54NLZ;SpP16R<6K7NDRqfA2h#cNcyraqv~9Idg?<#-HK)#lrnfBA^o{{AB}(ehii+HD<(YAV>i%u*2zE1YwRH0Z{^rD^@aEVN3#ILBOVr7u{4RySJ zt5~~HKZ3t>!T!{OLFn_qj6BdD>1=q*@Rv)f%N}f8guMjfTn!X^h;w7M(DWK7*0M%^ zLR@`@9*eA+SF4HI&ZA~l>+yb9yPx@L6luJ1t5zFQ&vIORT#4VwXiHtt_OtcJbmP@j z#NYfng|70b^IbHl$!V{1VK>?#R#?pq@ou(l9BB*)eQqF-;?{kTW*mtbKNZ-- z2}(fL5gqMK+|gE{qfK_XNzXp7)w~bx&48|3-ZVy@Hnetk1Zpp1jg{w}G4up=UwS=# z+@b3?!_w-VM34F!@=Yk1SJBH9w}sa4 z5LHHX4p$iy>ZjECcN(5JBxtV^jVCn-Z4e-gqw1&fkzm#-z;ECy4wn_BJs(8&JP(j-G&-=r)Oze?CZ(aWRf zc2=Aaeaiek^m*i7!m$KRGWM$VHLP*5uX1~fjP#`~XP`$KQ~03XDRMpIuF!ie*?h;% z&AP2cRws#y@I;LdV4UZLt+>Xd{60U>1n9#RJFJ0wx z)@vQ&YH3vA^d4ALka#_BT60f`6mjChKSZ$SLosolJ4|vM1m423wlb;9<-^&YJ=|c< z$2YQ`ZzT2jB%{`KM>`{V2{`9zXAmtyk)Cgq+Lh9GLz~CwYlD3;s0Qh}^|(4Gl70;TH-vqie*!G z)oW#lb+|s^p18tSG(NS@@5^FdGhzqpIpuU9^1b6PP^*sS4lCeki$B2Dmeteavb%dA zn>zL#RXNHI7C! zU3$PGdC?Lt?MF*JZWHTR9{q>z=m%@ekvb;5(j`KO0)e|OkPP+9kf`GcS!%d#w1z2e z>|x%mRF5{S_bHQyb^XN6lRM@0n1c7=3>TbEn9m*?)q4>0ZLp1m`0*vm+XQ>_c^bQKm{0jbMmeRi+LLqIkUr{X_SF+?Ik7J0zZw zr^^ouZ^oeWpHatXKLM2$hp zzYXVq2eYdXgX8Kzh`83Cr@4O_YiM%~$G_whpsk3E^c24fQxB1+OR-w*sVBkfsUAUP zUmm5dUAUK`&jVC(g=w#^5~X=#GoMw@(YGg=VMBS_^xpEaM>J{yYTjuygS@ zJdZP*7j+onj-}6!w0Gili)v}5uFk~m*;R*B-Vt4INwv3<-uF-*XuS(9DI#1L8a<<@ zCq;l-7@Uh>%w~WMBtGg@HY2*gc+q?4Wy3vKEKo@_m^)+(+71j0tpmJ*nSeIr`XIgv zvxQ^d+t8bpWok3XTO*lCREGG$+>A;C6rZb1SC&~rI-(zB?&zXIc%iWhu~b47%!3z= zT8o2MZn!SGq}h!FM(=vzL5!B%vbbkO#qN?N;Og}^OQCca2%}u z8EXl{!OBWXhKCq-XUUH)3ic{tk!Y4g(l7;kP;WuQVhc0oR2lvCoFIB_193pvmT(`D zX@MjnlrX3v1w`RWk_&0L~sDct0T8WyPdhPTw+Ps#ZPA+`uWS+38sAMhi%2I5ir zX(E+@YV(5S0ONzf+qR%M*Mq}o$pjA(fF6E)X#yVKB^7i6)~&aOlAC!Tnag2mS1P|_ zQK^=3#eKbm5OTCK+m)$@a3(nrdkK@Kn9DakttUMZb4+*aY-1^GLx<6lkRhlVb-O&v zHxqJ(R{?#Nhn{v`LtVi0M=7}TY}244_TwAf|IEZ6t%njmK5W$$(B^M(YR%C3BLZTpu1{2y(;!6|(&jknIkP z5>OBDgTlQ_kl~PNcmQq3Jrc0BF5EUt$OhAEK1S_^?z$DXBX@>k;!pIs1QyiZ#lfaWK)d9MWSuV?=)ljicbx{_xuhp z;lFiJo26BU3y_McIqeQZTTAIXzz@{I!(pk1*;wLJ21TFJT$KKnq6lxji5xB(TMsGouTj%J zd($z?h&3y86Wu|uJP+rQ-ON)8&MZVhT&Mg*t4E_A{X@uGbS7tjG$DY>;LbsWMoTDc zuHz-5U=`z+4b(NCn%NsYER04g$B{Y60t+oI7){A<%LReiz7+CQ0L8dxJ08}hH_<{p>+|onh+V{UBl8$ndKv%N>RjQvvE`H z;?L?`mt4nd0^@u1x#QI*VroF`8#@K{K=`7m|6n!*o5$X3AZO`X)vN9utMhL=%{e?* z9NSA9FuNC_swvSw45}aVA6L)G-w)Hep(`vjGOp-re!%p zvYG5vnR^1-<8MHsKOb&gV15MpSfuAe4>>UyB5TxMXa^jtyj8}*w|BzlUK^lox2DPv zyjTU|ig^H62hPp{6;_Qc+gnEsf?-=T=SGc8@VkH2b z0dsBN_!mqX)Pr)g#4~iPJue@R%rv-FehIV{A7{2 z^NBYNS!z8z(qZ?+2F~Mj%wXi!D44$e%$mFZvaYpr8NKv3QtO7&?jN@F14pEwwq+!d zTi}Z3yx#?``3u`!q)sfv;z5THVlniHa!tB}crD1=x;7Jge0SB+1wkVVP6;n!GvH-) z$tgM_WxEnuB=N$0K;JC9uvk%579o&U%)WHUt1Tmpye=B*SAnzfTaJuZeyg4Op`VP; z^WRe1dP*zKKbQKax_>n`_S{`|WF{3Ja`y^U57V~%v#28NqVi{tJL&E_23L;E+&*>g ze)S^yph^>@gjcd0JeB*UJLf`Gx}44vqrR{k3xSjv!po%_r@19{N(HT=F%9v@sG9_) z;Vn^V(nLzUHAS@jRsxwhE%Y)2E zOXS5zo&@f58H?XiZXGCqlPWQ(i|}VRm1%IuxU~t&m2MQD#J00$J6Rf$&G* zB*d#V%pO}m{bHFqpzHHnXzDrSqBDt=+GDY^V_FnvLY}@1cKvnR zp_W&5PwY;Uca(NgwwAWr5kkvZz8aOraS|g~oOu#^Lu3$*m!ARLYB?`FKjzt6nUW&cg6faLF=r(mb7Y?Sn7*0QLcB!j%of~thd(y&FoBJMUo^i{Og~qh+uetr+Q||r67roaO zAHV7I{5G8%51i-jjr)9zT6!n}tW+D%aVG(npJF6gP7;XFy)ku>LCOsVGW{-Tmd2q) zkiErK50bqFVE#V&caT0GHD##V<=49R5XgI=`mAbz<#-r9%w1@IQf*%Z{E7h}ecJ%@ zmkpF4_ez~=utTwBdf212w%mITVF(o~2c_kE$eqS_*iFcaZaZo|uGN~K7M zVCI&GiLAJ>($ox4H12*}qB!<`=t|Qku_<9;t<0|yii0PM=sUo&Xd zid^Uppx7#ytb2?J{q)VC+h!C(Qn(ZBF-FKhE22?w68h>Y34+WPAy&N8;?<)c25lXP# z!{ky*($(9s;$_!vA1s+lUe9@MEEWY~cpd9{Lm)SZ&5;2*M=#)UfNoZfGMq9fOLArH-?j5oBJ^S`8bnnW>8(S&ZtiZdtkQC-&5#$E^hX2i^i<;2pq9{! z5g`mvQW=b}qvUWMu{;bwt8vZ4`4}U@*F|uPBb zrM_vTyaLj#UF9MTQp_inqjC8Bb*F=Z!yTSBnl(V-1895Y9(&S2NcX$=w5i{L>k)1? zSg^t(gBn_GC{1PnR9K}wp|-gr?J!OJHrsSZj!bA?v|Ork`WvOA^hR%&y@wlTkd?6N z{Fyy)q%M#jnt3`XL5W^kzKWkiIt0o&rGX2`!mF_6;1YfJ5-kZ&zozeuP#&k2s@=lL zdD7LX9+Zq#LU1t6U#8|J6%e4U4ovgj?VOg~?;8H+#lIsdf7v|a8t3j7jc}W@xHj#zNzG<_*ko&R8xyBQNW3qLKC$q<^P&!`3lZ7Y#-M+f zNGWCjV6$2g0BlWo?m4wawa7+-E%@z_wLG_n;tl1A6fpa0+yg++s2tjZ5LsibIuAj6 z1W`u_fb2AjkNBZ0=k0b$jl-v=PA_&LSP}wv6@5^AO9<4E`n|p z@ew@qFsL33%b4>=5 zTWs`*YBA-#P&V%Er;FMDNGmSFej|-1Wz7@ zSq6u=x8hh?qR=li606$8!ycR(zTWSY`sThmZFs<)Vfon?$ZS!d6<*rlS>wrCmduJr z90%^#+9MD$dq9kZ5muPpVs=(dg5(8(k79veosqp9!7nsk3%2;6aT!yAQgo3SWq*ew zkL~^DP$n;M&9-&U9{5B_M})D3kLi$&)nohN+k7g*hy?OXYHJ#QK6(YiM(K$W(mw#> zOEI7m5z#^@!s*{3-#Xk(`s zvT`KSI8R4{YZnfK!5+mC)VrWZY16t!HNH-TN&N1ln~Wb`${c%rg0lAV4=Xcs^2Xog z(VpM2W?p6Td<8j@f>bW0q$O3^6)ET|KAt zV}e=6d8dipXbCkAKm8{{H$Cfj`vT~b!`xfZCzog&X}Mzxt!`HbTB;IYj{o2lB*TqTm*O0a~gLqk3Iqc}tloZ)s0g?Nu!d+-b&`MOPef zy#qG?wNHcOZ+{oME66kjNw`zs$QNY_wnN~H!W9X1C={phePK=)`6au+_SNIJeN&fQ zV8pT1^qk+#e~_8J=I6NSN1^i5`V?Rh4=Mvesm1z^54`F$1DTE&WNY#``Y%=kqmFeTM4=u9#wtsaF=K>0sfyZ~334fv)#%y6)Ex z&~`j)lwQ!>bTRRQYScKL9wX(f`m>s?C!cfI72Nq+;I?;ePE22&)k0gl%H-X?J7P@A z8;6bh*D6+*rs;40bKQE6yV*{)KPsoofr149TIp^+orX-i?Y)Jh`)#P$?40pdxCLkup-Diz>F{{UB4H*^(ku3{!>QIOZk$SST$X#VLi$Zb$Bn<5? zOrNj;JyhwL{0f$*y7c&^QK0y48>tsf#8wCaxQJu%1TWXHw#p`D4E+}d43T^cEyZ~~ zV}Sb~Rtgfv-3)+Rh__wITMjz`+aSLh`gW;zLG1|W>68T2iqG{bLjYo;3r3M0lE@g} zV50r?N06mixE=B5$dm;_DBZlRAF3eBK>JXg3vNP@ixgLlIbyRcT5OG#NY5C+gsbp6 zZ1ii+IeR?~;Pe+WaiOhY#zb?1kv;ZH`R9FRI43l|A8R||OU$s6&?Q7`WGImAzue`c!D-5oY`VbkX@Mj8>N3$qN+%lvnB%z{!H zCR3g8|9}Y|%cMn=D<>j?X)&jH#XeZ9#=L~}z@|C|sT(#ZKrAA6h2KwbzA(?Tw9}B~ zNSQA9)0helI|kcSyMgJDZK};ide)JmSgRpRRF%)bGAlPwtq!r!ubJ#4kVTY=H$f$3 zQK){sk(3q|ZYoaM?f`?syDUR(^>IT+Zz2q{KC~M62sUbfUn&!QWNm(!t>hu%-}-}n63Q*dg0`bjF{&ZVoM;g0u#gbP17U(0~=^T6h_xnq=F zf7Pz5b+6lafD@VTUIq5&wCR6&Mv4Mw9CJy|#-0^H}%Mz!v_)_dk)9Q!T z7MzX!>Z7{pZK|~4cNz7uKV~>Gk0|HXka|0&DKK!#E2FF7oE+7Lw~3BP^M!&%R9b41No}pAHxNwIbN)7BNd#H@ghi35uzH#i=zlBHrxt?AMr#n z)eO!SSNLeQgiVSo)f3Pz1`X1nyDSCJqu`uLT|INjLQ4Nr6bnL?{p?mjey2!x0koh} zc;%^&$>OfRl_H!CvON)nek>qq3U@O+*%3ZQxa%&ZHNRu|bz&GbDIpO@&20!we6kS9 zZL^wn7hv7Qg z`X6V&4L~~*!uSn?4G<{ubH&6^=8Rt~rR_I*EH_&;^R?^%0OJ!2GYBs8<@8~hjHLkO zM}{>?`yo*SMt>m5TDp}##K7%ympKFm$aWkdTNK?5iK~q4gO7BS+6wSi7*CX{Z=$=l zT%uyig7DguHUH-jl`PqGj1A@kj$$Kwq2)(JTqocqjsZ>dS(HRXV)BBc2r8Quj--(m z)$L9rzEZ{Rg>u@5HZ7tu3^&}nXm}sWxgnAv0TYPv%md_t&m*9jXW8jQ;!0);o<%99 z+HF9Ubj${`{ISa&>y+$3_o-ce^=r8`E%SFhm|-L*y?@epvHZ~DpNHL6nA+u;h%Z30FIL;AdNgYU)imCmC>0YED{e_0-g3Q)g z!e=-#0Zbo%jPh7y*l_3mi=WzfXo01|!1QLwX5zgV4@c=8&f1v}=P+O53}<@wKwDN) zt6~AVl-EEl`Gv+-t3hPZIaY!tqwjw7@@0cYSbPQ~f>w}-U?vPR=28}u*Ic#iCb1}V?*xiBk+nlS3aS<+ z5y4T=CEo3#|0-RF;PesYYk{(gI$g%(x1M@fdBK9QE=eT>QnZKOK>)<#6m@z_Y#a-O zKpVg^0_4*YcMH6RE6XxIW;+cqZaF*2CM#0y!9N`A z4*}526>RJNIJ@~^<2mlNA?2p)*>{^j+Th=PI7%gf1062O8OLM{-mh7PL0F3fC^1|_ zn`mdoe%ed}8*Zn%6U)g^980M;0zCBvSZGH(Lz5teJH@G>z2Q+1bKGjn=%33Rtuc{A zs-Fca9OFHpc-i^rQKL1^;}#(!N69}1*Fz*=6K*2xL3>4(dju1H>Q6ZP@V6539C-){ zCNNex-Ct<|00m7b57bMZ#n{^>c$L^vZ;+B_Qh}55d9jTmu{?RUgJ4(=LG=GWN0n>D zevf2!m~zXcBQf)a%bqxIi0anvo$2VpJ_*#R(}&;-_V;Sc%7+N0-pJ343M<%HF}$)or2J4=g3Nr3fgl>VP7AB z-@x1gHKDJu7*Yr~Ys0+IhCvFkh*D{8hcJv9U+p|CtYBazU;;>SpV7Yp;7Ude5#kQ` z9aRkCbfz-XP)Z$rpjHDm68VBRQ@8VeCwyks6>Gpj1MF?!Q5REVrn-gRs<|GQN|_8N z>e(!XEcd$~pgh0xfe30^6mZUE-BN}}{RHFg62G!qYXl1H8$-6UZ;0uVfYlwR^@1v| zG7ml6P_J_ub#=$&@*oGV^=IgbUq@cJM->v5Vr5IC$vnjYfa-NR^n~#gzFL7mTwQjC zQ3CIQb?iuBHBxzGMhALhg7NuTpBe(P>%7`SGgkVvYM(pjUKbwj&D1tH-u`te#@n7O z({12nYlUw5@vhC7$8J>@rB=FkyWT0+THasMt?Rfsoxh>O$$#Cc>W5z_$!YP@fg6&( zXq`5a*L|RV{L_x>E?xLj;L6aSlez`!o2}jR@)Rw$gT`vHN}mTj48*{c+JG?%78Szi zf}(A^a%UT`O@I+IqsuskKOy(J>D@>jCL#)Wu>u)fshKK>U;uofN>$cTf9Xl&j)#Z4 zmr{+V7uj2$c#ryFzAy`rMDikOv4wzNokF>mo(IKvz#*Y-{L<*mn_C@-kB)$BtHRNM z8Db%)pBnpI@PFf&o92=>LC&-+Y*vUsaGdF3Rw}$eF!Pb=7nf+9(NO}v{PXaze-g7n zr?07?Sqx|bf5hm0<^JPu?p@mR>GPz=%sVxn#Ge-`tO+l4xX@noiWXg~2^ z_n{mHXrft+9zzT@u*tu#kn9B9qxP^??8(mL&gl#GX1EU@HG^^a;NYjQAN5{g8bDF& z`q0F2oPM~@olPUhroC1Pf}p^G_+?P#M-R9y=4x!+X?h9hu86_`D~F`+MO^2TYtOWm`LYj~{ z8rYJfC?eMu{e=k>8Oc%oic1=Um@QV+0LV?iJ!ax!C zNfzf7w6)d~9yKSAqIWFgZH0?DMhDGFb7l(L#sS|@hd=a2yA||RYnLq~Icufq0XHFC zC>BB4I{I;)qW-ci>pUj%_WQ5a7s)uGtu3y&r9ApEAm!&B`@EM6l|b%#ecvrkg@6wnqqi zlq8IXS!_A`F^1U3905EXvUMN)gP7_csaTH_M%jgi1ACL=Y?^O(7HhsYfY&P+U7)K| zS8%cS^Z!grXK{3TvMZ$BQUDS)%N54a+4Q+k$eLqhQy~k=c(k_00lKw3Nfw5WnO-ayZh)cZS036oHUImql)$fM| z47w{kMl>~FS{axSl3^)e$?32;wjD>%F**wU!XIHdK208h2Sc9;d?$zp-ET1r54xdk z*1g(x_=Rucq82+L;X?%nD)&h+boHfgKX|H&jY@Z$lwE9MfM2*a0mL9!I4KP{uh3Ro zhJ8qA)J#Xb5V>TAnS%hlVjsZ|^KNC&*y- zNnu|9`W_i+!?y-neu+l+ve{gWDFtQ7ZM~07XdGtF8Nz20x&err(sPh;JwW0HPgP0_0bNw2O1f<46 zK8`PxGn#7Q?!Fp`0u50iVk^CDG62TBcD4S3 z9=rQpC-WV0Y@Xo^nudS)`tqN_MDIJaz6|keX3~NB^Q4i5TaH={cTM z&Iw{)LJn3?ei|)v-Rb92CCcNciA4Sh_5?N#1$dB~ErpNp(?3UcT~`lExE{yfRvQ9` zSwjOCSxY{d&=bTE`iNk%hk_J}1H2E@+9E|8hhJkFhYvqkX~_^0hurZ9=#I8L+?m%& z{38;}!{wf|xZ{61!=PRwMVeE*Jf91sPT<`QYFyp%SCC0oNso90yJ<+zl_9{J5`Z^_ zKb-<~2v=@!AT)5k@b-g`oXIcT|9k4+>;5(I#=06fL{7;Y)}nEC{4LF9zJ6ofmN#SG zZC|%GU+nSF-av-q@f-I67@Ao{G*Ok0Clx9cS=|boTwY9=6J}Y7o8nhsb{9>L1j=nU z5CY05*pV#YYjDm7fTY0Iq+)@Au+PO7`k{6+`%-I5WaITCb@u^s4pq^1E$ zz2uGifPucgO}$M98|r!)qKRv0V~hZ`?Qsn~31*j|W<9zN9q^XpduXcI-h#!}SkEiX zL77;9fMC2iuYh7?1r4+DR&W8~xbvGgNx3sC8;zyCIgVgkn zh5~zFgik11ZPP9VKYw-rMYDBgA()QnV6ke z$II%Q)U1G{A1?%j8DN~33oqXW=wv5pINOdznqP75R{H37@&m+c51E5S>o4nQGLN7G z?L+b5+4B0!1swvduFp|ksJlYPDw5gcj5RdFn|OLp`1ZUP{YXbQy~?w_OBJxfRe3!{ z;$t*R&_zP3kXZ(#zPP-dC2R1(er=dMv~BLDQ^kzDjI2Kx@n?R(xEM!Qpn3QpqA^J> z)yDgL%B7=>`vly@T2NfwM~JIudDQ_+A?V8q=|Zai4{2{69Ywi)fkqq<0pq=hh=_3j zQ9*+;gt@$;B1Vi}uLfjjkRbwM0};cN6b^t05(ObbkQN0aGPHmYhCm@xLTW!kNM_0Yk zz@)R2Xd!b0ua(R-XrsI7K1^|zhzW>k_EFn&^k~@DA1=P<=*NLa_}Nr}T^)GY5a?d= z_;ShqSZE@D7e{829lul0Mabb0P+#_2ymy>?395Z>^T}V)9pNj7myVU&JkSqNhJLg> zn{v;U0(y#JztUReGF=ipa{5X9slnNDy;s;gX?pnjieA$r`@i%G`>y&;4Cnh-fT?(e zIYRl-PtZi4l`nO02daD$hmhH>`jU{yl^5{;-b#~7QvMz@Z(3gA`s3G*TZcTqSuCZD zzpqs^?Mj$_Ws`5FTj)qdBpsoQd0$cd!Gy%hx|q~+_f6aR)b*-13wueO#AI*(r_O$y zn03=?yD%a#Wn(QHrTDy!ou8N1U<7u>Yw6dIZD31Wf;LTZ`7JBtkH9RzDQ%4UBp7?R zfR+Y03vh{_`M@}(n2l2`8jZVR8@7*H0J_Cu4|{mA$HUcpD|kZUtm@x0FoVWh7{evP zYbR#?ZJ)Oo+6t`*2Msf`5;wqv%3h;vd_lu^27PIW!p9Cc^5shQ2FQz3XjVRu9U~1~ z)2b_cLrem%&^}Pr3^ee@#q@Znx?-$MU^o$FBWDk=}&?A=p7<-wz8 z`*0PWd*AKm8{7YZfm^OO+I7#J-e)c~x>|7S-tlW%_1z!!*@{2fj=ZO}CGEv7V_)96 zs%-1%t1}-x0HMea=Hi;;PgyVZ?ZtIzyYgApqWtFS!usDWj@(`2ZXbyfgG>ce<*ZN; zuI6EzHaM_EZU%-3%YX^x7aw9fVq=soHmgUhqVs#nFBHMvZ3RK%1)Zo#zC5(Svc^@^SzvINK(xfA)Kd}Q`pnMFWGp5ESB&(!^1jn z73E7aV_aS<7{fj)v+jvxKCRSUL5YILn;z~%U5co8ttQheAFSZuJ+M-xCB>*0N_C`K zMPcc+$TPQmo7b*$S8<413sqbs5X)WMTn#bT5q(XW80HSf=5EbX%A{f)=P+Jw1vc0e zt4&e9W`hlXKdiF94L{cS2f%}vb5)$iE&mEZA=(?nkx-kb*!=qa9CjXjgg*mP2?!l3 zcTGz0&q!M}@tvsdlnsVsb4M7f#lOP3hL&^2%Um7pD-mPZ%=W8g5t;DBk>(i$V)@N&Im%cvDbYQ7 zXS$rUn|XuF|eG%$H(dCJ;QliVwkl3=%s`21NiRbwly-W9-<}IBNSB;gW8Qdd)@a$({EK zzPb3WH+WHM9emoPuA_or@WRNO3(L;|I1GAjRYv8+%kZYZpL z6`izak+TA;YMm#IUTTm_my7%fI%_zW6Gi*e%ECMyM46&c(e7RaN$(kjjQjhL)d5b0 zi|u^9mM}nh&AB^m)Q6_wX?63OCKwL{e6JmR4TP{AWp1*}TwzUJX{l&47^$`L z0mxQoltJvs%NZ8!VUQC6oG15R4^3?q?YxQ%9)5a3N!t|lA-2wKmUtPvsu^rPBW!sw zL9_$R*39+Jp`>*(W}P-nmSM5E?c5fPh=h@aKB4(nFkTP$>*L)QcVtO@xD(wvM)_sF zV9_T!hC38EcQGBK*@L$?rt4Kox>n=kZu#KJZD>WDm+0{gv(NlB(!0=nCjN8t`Svfo zvm-C_9doh$`rM9-tZ^?E?|ZVwl5=G6@J9!qz26$sZsMZfk9a0ds=oPEx0jDSP+G7M zj6yrz+y%sLgTyvD^qrzydHC^iziFQ^WPFwsS%D52BHM@PuchxL`vA62P3P-&0SNTsr@=xiWIL@_CA1RX0jrLFU2X^r^J< zJ;;tP9}zMCw}rUp^n^3|wdH=Sfz7Lv`TNnhok;8`E?L{vyWtI(9S39lq( z$Yy`)NyPKE8wv~lPEE&Z=rBDsqzYklpsJma2ou_=lScBF@sUJDFxIsqMI&`V-=rP9GgKcyyOy%&g_EB^A zz|hF7B({AkAVFgpy;Y=Xxu$mfm{KO`{sF@8;J_>qwll^wjinv6mqi=T0%L0azFrEi z2S=|9=wrPzV=j7EUe5E!@18vAp22N?>)v@&^L-=E-o|bI*WkOvM_GdQGR*tR1cJ;k zAwhktE#Kl9);pUa)uGD^L+GhKK&1&N4-B#I0BfYqL?maflk7wj9rjj6ZGepl+%Pwx zhiV`>!%r8zMT+56wf9ruPO_&neId%+gv{`|FV4t_eSs|`VVNhi2OE{(``?8dc_r{2 zz&W@6j2j=~iL=0W!x;FMz!?#32XwKYxRiC_KYA_f54w65k1en8I#dYV#i75@gY1Xc zb~r7I=S0jk)s)!&5)Hj-5O`bPWMtonb^OU2V5ThmO$F8*jilp z)*&OPzNHuXX5Spo+0v8q?!qSa>9QHb!B7XQOtSxvCYoE#vU1OTF28W|+z5eM%)}?P z@>xeKgrtBlrk^w`i6-S^n_Wnd;S&>!X|W;$DG$)XdsRME4_%DkZsQfNhM+Je#bw$l zi!m$cZ{%2WwS9_`V-*)5@3zUZb i7Q**nsng!iSBqIcJLIH+IA|wu&^UFkT&y>C zviz9_cB}>O2R0TlsteFoukdvx9p-})6fEjIgm=oF=dyQ&TE)vT_WEa4Vg@Dx&6S88 z{DybYv!E*=dAWutodD=E_Zx-UedLC9#c@kp z54_^HKb}f$JYphjhxXC5C0l*zswEHszFJP7GExd*wP|uwv6YkV%%L^xE2^6~LnzJ5 zbGp+sw8g9F#~`??F#|fm|BcX=9_T>+WF3e(7C>eV-C9i7&J#ObBjk2t zXvNpvN1>{BKz*Rw2H6c9ghEhFj}aq7|=3p)M+M|87e>g z|?f=}z2QFFKy(y0;$_rZmdr9p5FqgMI#TT}iE0tvV=&Ex$o% z3`YgldZ=^_eJ;ifv%jJ6gu7%ORmsdDP1m9r+?jEeCd`3892mdGTmpJS`YjeRa$n)OVTpJg6fa4Tf)L*N&Q>SR%01_Dx9 zQ!4Axp7?sjClB7>S|Cxe`8j4_=**SPyFmBR2xf9!%n4pA!(^<(YEkbY9zbp`X=MJa zneHfBDrv$__=JRzM6~9+JX}{pr2wEj$Iv5-TA*C%Lg1I8Z$d8Kg^Bi4Wyr;K+7dL3 z*|?a(U(p`unvh*ODYH@sBDm`hAHMiCokE1UG@}64c|vM?5IH8pXO46bziYqhATDvt z_p6Pi{_%d3Dx>6U@Jf-DN>DDcQ&Bz4RN2UxEafE7``bFsX?8f%o&8bCg@=FZK629J z?cF^yhqT#fWo6(2lz~^hOsy4x9q!j`q+#6E#MLxVoz*D&dxZqD7f^0WlEh9{j#2AHAf~KY6W*6Qc)=pq z9v22@85CO)wIUcLUY$RRD>oIW0)0H#|cT`^nK2^^wIs{ED zM}>zGjn}dyrv$zy4+gh>n3sZ#r;m_uhZHRgMPbQIb(z}Z*wOcN*NWA3+uW*>p9lxy)oWj{K z+hIH46&^35IHo=d)l_51y1>u3b#w86s#6$LJwu^V@JIRPdg*d5_Lph5vZqpSOxOc+ z-fL_td-o!!YngUgR}D_PNDl|ABGoxk!gLo)(pys79&{KknO3jtzAPwW!|;qB)!@US zYS8MF0(G@ey>0%mM}JFTjx1It~6 zHF2gKT4A0uoOvD+|HfqrO0*Byfc;%| z3u_MYm^9?Z?SF>(FNd1k+upCSUzG@k`0WFqk3q*>x2!CqQw|=;&}UEq^M|tbE=b7i z{d~WfcU|X(Rgyf>7n|eq$E<0yxqu%vQpy5hVy`&xPr1u2UF44AnpFsOy;oLS?Y%B~ zHuXPhZd?5Ahn~6XGSlvpCwV`6;+@HfS(mJ>ZWq><6mVa>^zm}{fKfH`zf#b@@)g87 z;J9I$y3elJ@u#x(QTHkA-%#CWCE88j=$N0F!a(2RicuJ}W>u=H_9S3_VWFj-02zpU zw=#nR!_-8$NE>0eoVpTQwe|l9$=8n_c#6DDhr%e>pRroIM$7e6JPuu3qswgd zvvz+6%e{9(&GHZMbVTjv*NTso3b_htRYUA4$JEhK9ybI}CnyHFTrqX~aF@=S_(ouo zw;8+Rb{tpvwAzsgVyPZr0pP{lG_)bGC05PP*A~4>E4+%hOb~@$X($4Ihc!BWVSqlf zu^6}?h!;Gf{Cq?Lu2&N9J6LX20T%$mMA6C(@U9p;U>4iAK0=D==wjgCj(;AEfL36X zP+}s<>Zj1~I7xw*uQ!A_N2c7%)B`O`+FET&2^D=9j6Bi+_JYAkD}cY)(W*gKuhW<6 zs)V0#{WasdZZ2v?aT~Q)7VSiYxDO27D@OV+n^N1GQ!I6|ym;g@0Z9>R`uFG>x2%oHU*Z`}8NyjUHbE>1ALmH{W%}L1faN zU#yYYT4LG$GAPeh&74cw%ken)?+vHib0Qv3;h#`vH@i~*FcV=EhC0a(3ybjqN^SP_ zx%;zkyl~0MUAXbzhey|xNpB9{`O5S*XEN69w{VTc8OMaZbG%cYtn!W8a_=kgpO`nq z&l&tF|N91R@Yy>$-I7+Wb|xRmJbRFa-DC_~BxeQtT6zj*2U^xI(~tCzhm$)vJfXVq zJjx5(8pM_GWkPINP3QHb$HjZ*?}cFg5V``xkxs#Oqe?2>k604fnP8pAnuUJsL*Vo? z8gjo}c2#ZZfEVJY@lF30|skFzeyxYD`2a+?j5q4`{ zq)i&Yf$i3uRnOA5_OPa7Eu4;ZiXIvjqHI5j#cvH_h268n;{bK$P#XvTfKPbbI5^>RefqcrSK9>c-oJZ0egnVT-WI?%JK{B3WSd38+f#EPIa?5;N^V*IB(OQNcIPv zRby!LoT5GLP08qNj9d^rJDu4lm4XyWo~su>V9amKh(!B57pLn!G~LRB5wm2rJ^>sA z&2ytj5o&?wYv~PecTN69$1J1F&CO)FMQUDAS>wumXQ#T-E_Qq7>3#Bn z_=WpVU0xi&(3;Wm(9rlr-Lnt9Kjb~}f|}9s84)e?V%_g${x$0D)key~kK_&p#>)cA z#t=C&p_gLCfmv7=w*O@k7Bn=%bt*;a-aZ0Clsm0Lg5&STJ~B-Z!1Ph(chh|4un`WF zAUk48(^0294(?G5?SOlcvLpIu;28Mr&jr>iFdo>pJ;!M>paShP0G0kThW2@!?6{0} zRnTV%#Xf~OLk9Q_E4xw)osAB{Z5fZh_Qxk^5Ja|V>+4im=*>T2G>>?fb+jq?k`KvJ zx!ob9`%J4rOCRyxuk=@whxbrVN^BW^z?jcnV?14I5sMB-S+BiN)|(M+QEkJSfsN|9 z`ztZQ48B4J#pKMV z6zqf{wi8I3iZeVIAlubsEUO9xsfWm;x?D(p1OE!6I(nO8vQc|a?WX8YpB0^t!^?$n zyO`s*K~A8e)2zDGAFd8;Id6!ms{lnIPDPNOz|iT4=$wwvKqnJAU_ao10f{jd%RvKM z4Xx{Mw%mH8q}7SCa;2xb=|tVJo=43XlEg+&J^lzm#2R4H0@dTx;H-@WA` z)B3roGp?o{m~QE((jDux#W&gx;4^?uwap3S`Y!&+Cpx|XJ6xzpn&fD0zzqP+r2g8X zRRN~oUBI6e|Hu%aY|{ zW9IO~fbz0Rv_X6t*8Y9O8s&cj->>EctWMA*i6BOpEL)z4ECs<;VEY5Wx6zejDn<=5 z%>NgRTFohH#${F{is!6;Kw@z8R$^Sd?ChM2CmtUZM-UErN)48576hGcBg;y!V)bu1QDaH^e;WKxEob}x5v*zl`HdPR!ACE$+3 z>Sk=WKcXTzb2uP5D$O-{I?kb0pr*Gn@Bq@<#4XhAMc!O*e*u${&*b0a`D0(8>nm@m zWuoU#Wo{x9J)8QfELRuDrpIu_(L}*p4cj3BD;|Xm5CL3rvfb4nEbNo1LQF8k7En$= zA!03PV54PLY2_#@j-W@dPsN-|o4=g!L@uJ-r|qFIIB9uS-VI^?y=O=q!n{XN_+ccf z`$wq3pp8MR!6wNe%ECCA+eD4AVqW)193lqz_?3b?7!Mgc!eZ0f?;mkZ1IB@}_zBMdA4j)5(M*wkUHCGnV{tx`#Hk>7?-eAgn17$LJRY)E39ZY zKuvc@TDr=1D(DpTA$SvslF+*;6M|ur4|uJ&|CSD(H9vDE9Cxfef<&37KHA%U_%EU9 zoK;R=rcCFUjUwh4Vr;}<4q^x0P?#MyFGD(Yoa$E`tkpN%xcMmcbQ~?;6c0|O^Rmdp zfd%t+P0tWGZ!9mUB>xWcs7S%6cYEpMMKIttgw*#4tn|(0jKjXnKwh=@BNV11G09@_ zC!k=-@>-@CRn#k3>DawF!db}chM|K6YrQds=jblVmF?YDVb55Iq=mM7mBB`npdsD3e*3}i!Ej2)kdWRmMq_-gTKOz)>Kfv3ofip9XLN`I%#-DG zH~&2~QCtSY5KZeBP!mWdeN6y}#%p2AdbAC(0@1u`fM{5ShR0btB$yhk|89CF&&J;+n@!a+H3xL${aO=u7(T)-kw-zWv zz?@DQ8G~9u*Hz2d9h#Z*POLRzn@&u~okg8-n9Uvf~~dBLtxw!SQ=K&m=pM z__d*-1#1D*(hvrNiV*nq2kZHlbYB@83%umumtlUuwmmbe&zNsP`7rhp3kXAmd&h+{ zFd980!SDrQwUXLy9gPfV+$!BQK zZ|MDuS=jEC&{LzdQ$&0KH;FYx@X)~VWI2mpa+r6H-%=6UE=gX!B@#$5xUYB>VQ6AfCP&$P5B{x8IbezO9puML}ZS+Ay zhwvjg0Ym`4Gmmy4D)rN#gR$rqD6!N)1`4C*QBiYJqSzDAOtA8p_Tp%VDtCg%x0202kjqkiKn1MbhrGj4_)=t$Ibzhu|fQmi1% zW#STsbVN2LFl5@Hn>{Eb>T_kF5jfiv(=r`44XRFp6)dwis~Gl`)>R2iLo<}9J?9YEX-tZDNF{y(ycH1Eqxu_D-b-*s=Ucm zp~3x@e*4NWo!}(@3C6~u1((izA*J4g{UwKZ4Ue-%P7yl{Ji@=m_hOMHOVyBAC;kX{ zy&$a2$6B(++)r{Vb}N<$K&wvLmXTPdyvZ2ZtG zVfxO*Bq27#1lihlDGk?Z?X?k{#@pnuJ)D)pJaa1zX`242Pn%d}Hg0?D=L zfc3|t%_>&9lUMw`!nE!4VctR-@bXXAn3G-$S;@<#7Kz!*cqi4Ipg{+}qMu9VcX0dC z`(2zlwPetn^G$1$pM*^}BbE{+|BcEdRjKrGt})p@_t}?R!YF zeBzBAIHHoC*#RDK7c3f3NZAg#gI=TzB?^eDc;?jItU?x#i3;!%jbcF&5Fa9d+8q^f zN6<5#u@EPUmJ@uDCi$0ArXqm?xz}EU37v7E66@xmt1D!CsVpIwN%;hnk%QbIgm#Dk z8MCz$GF4a1_@UZ-u2LR?uvOq2VmRR7>{mnlZn+budUqY=8^FD|$UIigU_Nt&`1)4uRmvB6!}}dynVH3qQR7 zNR`9-`#pcg@0QQ(l=N^C?}ZPAKR_u_IqsffTqM$WbonKe&A0;<%zOs zb@vv}_fv){KRiIux(CsutiJk=mR)JiYDY#KQ+K>#_7a+4sLNPm9Ax7=pjZGtp{`>M zMcQqRe)9@Lu(%q8^3X`sBmBa|%<80%!4(?~)Yxi;nNz(NQqLU{()&U7oX8?|e3C$s zupjrHx9^rpveO1#sh9YQ7q&G%o;F|`&3M+I`SJW~!h1N5HL@9YFk|Hbkv-2(`e__` z9suP=G{~s1N2%FNHPh4pkB|U^dQ+bL5B(05=MB#Hu+q}@igpx$@4J=kKxvRWhny#l zn^Z=7*|HTcUEwPYsN+d+6qMpPq}A)Ll$62f7+}7t1`z1aLNti;?J=a%GhZ>{TLMf$ z&(8+`D*-=WS82zKh&Mgp%ArBPhn3L`L#g?fGL~2Rs{rcAUrc0+1ObbpO3*?}p-OWa z1XE5Ls1J=>{WMHA^v))>)Y3?Vi1~>c>up6@rFjiv1)5$5R>-aD)saYDBj z8ehT>in@D^^FR(}Fz`e}+&=rRzzi`5Io9#(y9r9gSdYN5sWl z>l8|keQ`CU!nz@UP`kIMl7`>UHcrADewM&_qBV&L9 z!E9f)Hl*L{NA_;Bb=<7~1MQ*73<-Bs;Us=sD4+3ifZQ8W)SuNV>W>L$?9{lr{(;i% zNBNouMo;_ZjeSR^OZN{My|&vC)5L{l^Tuc2J$t_rGT}7BcE%dbADAvPm^T@Fff<)z zJc1vj(bY3-GGZHm>Pf;z{=r3T0cFc!H}7X=8o?Z^Q8+*NPr`bjK|N~?pdL7mAIV9W zeZYgkD6BU|u%>JaDyus}W5a5{ux6BD)O=I~h%AinWq>Eocf+toH}7TQmKccoJJSXO zgl>x<*aj8-0fl}3@G@TG&7(>hFt!V5t3yiXN=8d`(IaTm>vejWkidlvOqd@x8YY9j zO8=NDU3#R{Ii{g5-T%)P5Sf_iml{~%#2 z3G#zila{x=c@-2}kNpx2-p6-^7Smr+NYJ71@3T zoNA5@-h2VuM#f-NZM%=@oLk-^A(IYHqnP>3{^=iJO54e2bxBO&<@BMfa>W6|FvEfE zPJ%9pHf07Rj7%EZp^C-9I>9fH|7yBNSx~K;6~d(nDL@wk+sn~l95HMpj8w8&q1V6z zMq6`&!ank7Yv44Z!&;cVC4@4hmN$XTE>q>53X6tsgE~@&;cHJ{)5n-gXGBv2j$pVN zQMAr?8aQK1sZ_E%uBsS7Faav?csh(5+hVY-8yp6Wnjp5%(@m4K6CBu6p=;OSl}?2+ zcB2@0<&@dzYHZA_fRcRFd|({+r>h%8RvAH&)yTnZX7AnDByAW2EXTfgoen6cwt<#L zH|k`_->nf2O~A~l)L26O6J}luidaJyO=r9@pr*dsVA{5CpF$vR=y{PU=X;)u@2agL zS9)n-1IGf}6_wR0nzaUS$kz=@GmfJP6WTC`RCK$_Lf_BekM@mGN?%QXLLRj-M4|ZG zYk_69k+;b7quO-_VV%Vaj4l*rG9pIT>PwWd-1?|E@u9R~ z2Wa+wq4)G{zci;_6L|CSmHh~NBU<68 zxQjL|^z+C0iCU#qHy7UuWMtSi2VulSo2Phcoaq7u1 z)XyElT9kg8Fjb|zPlO-AReuaF zOR3+a(6;fC|BuilJi~?-6IK~3Fei}2+uhv!>EvR0Bodfh5wcyyE62(eXt_a+@Z53k zKh5e)iWzCO6e+br<)MF0-cnab$M>a`QSrbnJH6iuS&T%jab zo#s9}!!OWEd7|AbrJtN+Dgv!!Hgyb1tsa?pgiWhUtB2l~F0^ec$PYXpP~2BNUUG0# z);(z+r_1-qJk$L-LEy1j%C!4s*QX`s4BGYIANk*f>?PcXN<*D+fw1W28%VFR_gQY@j$rPS6 z2K@NJ{8-|po`2ao^}fIsMCVe0oPOBPME7}^1=lFlYGe1zA2T=)p({QGPVME9UBl{m5BUCdPL{zf>H`g$#)Wf*_9DQ z#)Cj>!wC%YVLUpT6#T1~PNM5R8%7laNKS$aZ0#_2jFD*vxzPPt@5FUd&L^|(!@yAD z+Cp^HQfJy}?qy&+zCdi*7`iuEX-B%#(i0Jj+~BKx9&-~7Rhz3)G*aeMUehYwa6bg& zU|@KF`JNhE5oZrwkrEgfKBgTQ!t#ql#M2~GCcR3BW(d=4&3V(}+lAQXaEI=vVI_IT zs6r7BX)1W;x=sXY7PCBKrVp&4GK*7|ojryD&b!sgxEZ?Xwf)rGiJ$GiFlYOJsxMrs z7(1w{^np*-?T@`znYuv4vNCNgVL?6dTf+8;|EBEGwVca9G4pWsz@QS_2XSs%Eemd$ zz?9XP9|yGec%jj_b0Tc~WFZ9gvK}!AapM+exae;RsGwC61!lZh0n~-GQX|%!FoYXe zc?6E5gL>KVK@rP%Zs5=eDu;&KOKpstj6>K-Z)Y0SP;>HsGrI*1tyW=n7Z@oL5eRpF z7PjRYS$O`gg!SXviA!{yLT1c|sjglv6`Wr)RFMJ8Ix?doXwe2?1hkiNXjUs@n>oiGQfHBjO)TQP3Q&m?V4U8NUF+gL)YM=6nO_ z8aWOF=3?@K?8hVGp3z>Ap`B+96P5nGnE$pelR!EAyqu7SRk?F(XNoHtI%yxrjR zkcb9W5l_X3xnkX1Tq^@xfmyNuEK&wJOg;tT&Um&%RhJTBn}LUyHkUwd$j*6it}=Qr z<|^F@2qkwyj|cK+?z;3d?J0vm2l{fhKSM(nI}ej&;n#57SK8r`@&JP$XFs2ICac=c z3F)#EtvBG{hNwG(uQPxlH15?I#DY*`Y=r}o6%>m0k3T@6*mp9ND-Vfus^;y_`9Uw< z$;TcLde7Ll5&g$RKIH`ZkM>IWJ?jMjHA+7B#X=5Vn?J$j6g6LZ*gN1y8)8QzJ8Rfu z@&&ey#Ev0zh4A$W`cOwc_{(qi;%6^{DTKOSSEX*7`e5Ix*mzK241di9z22-kFEZ$l znB+Yz_kLaRCU!jXQk_CkTnGN?VvwIhugB=5APe_|&p?!OGOeBq*7ZQEpOGidVi_Xb z6T~V;to(7>g?bBf>K)_dbX4`>x4JA$Vv7+H*teu)^}z81T`~P_KJe>;Zv>MDIDfdL zbl58Oo-7BK7rbJp8b;Cz^*q%k{AntN>O&a)frZr@e*0>d>GN-JM{uh zJJ-)KHiOr^$Vus8UkJtdtIrX?WdK{yztq|Sd{7*v^p+3&tX<@{ zmJ2r(cErhjXkT3xw#FcXYjU1{Jg3f9Td{H&%-Xwk6jC32Cr#>B_L* zM@e>(I9e6X6`UM)d*2}2=dvayvQN=~h`DsTgz4XE{3@;RG!rFn%qopgQpC)f6^`8h zRXDDbaje55jUY2Zafz@m0#0dQ*#_n=5BH>{fJGqmtJS%KiDdO~X}5`gUn2KnOa*Lo z#ovH6lcx7m2n*;{rh*BsAN8fXc?;5oDbyw?SM~t(uqlJEu!i-WdbaIJ=Ay0X7})Cp z;>2wBQx7JfHy%X>;?Np26q+tmVOs>;A^<2xSTupt9pXAGya{ZdG%y|Shoh+mmQ`N0 zfaYH#2n86FN6g@-af#RR2#SX1!;|j-(SwOB7{}5;^VYzu0ag$TY?=Wy6f_zoe&Ed_ zY2Gn^13+vkGd*MoRnXEQwu8LT5Yy4Gal2NIY(rE>jEjq8_2o-`wanct2eqlIWmrRPyFEAhSNB7;+=+8HDX7KT? zHaBlH@z%3mcJs3ZcXqn{DHXzozbn$W)-JZIEUcoV8b=J}l%dB~@2aZ3S9Pcs z5z{RFX@uwr^B5#x)J8tdOa&G(+dM*y#yVQLA*$j4;)VWG3Y)b z`WEwdVOuQaIckXeJzpbmQ<**@-$Jri!4X%7+-SY96*5f&I5w7Vv8O&D^HE+^%U{A1 z9_paG(b8gyc|bEI4SXixKsGbf)sQ=9Hu~i~;>XCEd?fs!TDsE*GWhwOYd~C{Xkg|f zYliv(nwVjt!f0YzMT~|ema9?=Ym?LW5F=7H^x`9DLV;O9)5_Jktp!vV z+~k_yYjfwEd zF=R|Ig^r=XL(C>d14H)^ow|xjWK*aJ574{%HOTRX>SI}uMxdNsn3Z6bKNKU+jv9N; zGL*H5#uid80;v?!3aLtr*g)RHu$UHi^FBI4YdF3l;2sNK>NWfq- z=sV>J3jPp2_X;&paL5VT1dKCBTQq_LB~4$V9>mN1KT#ga=-CtWtS)COXHK;tDWh)2 zBNrH)fc4P5|13#%-h*H(i}rDfSKT;iQWNU7!L>|~R_5G%YDQtk70K0dM&a8vJA}@x znVGgxN?x|@=~eAN1&mmQB7*N4K~aPYovu&528V+f10PI?Z%6~P&P9>(gHn3dhbx5+ zMKO_yp@3^5Hi*of@&iRe*i4IRKMenABh%|2kO zve$h>JlR*%w@+_*`pl+J_lzTSr6NtdwMG9|&7^n%WP_fPhqf1|Q0^s)A0cZzzS)WI1TJ7uaa-N>cZ;Rm;{X#|->!Hk7XC zckZK(=p+Ve%uDJDUEC`2P6={t-OAWQWj?TClntk0A2Wo6XMuHcuVZ=$v$GnsXerHf zJZ_czT}jQ+_~25QPtYYw$7olNb=_>7v7BF z_6DB32(C$*m8i;3TjJ)kLDgUhA>3yxOX2VfnF~)Qgfdn`o6^a)`h( z&sCmW(QqIK^`eCue@j*ZGH7xK9mH^k`Qp`7ITNU#lRr&08||xM!eL8q5mdCggb>3@ zsU5!;h19FKqspb=hXtK!v)q^`grcO<7B!;mznQi@FfaN=&eHI0Ut`TiZ;fuRlzvoH z*IurUT-g)(b+(&ZAND5Kb+FRK3){JD{9#k7*HK@0#xit|&vAC2-BP&6&rK93bEQ`C zhe4d@Zx1>|(N1>q3D00}8rAW#&6-r>emMJzhUHYzJtMNcPh2Oq)LY{fwWXH)USV$~6|&e?;}*#-a|(v)b3WQ080tGG zC}j$1yLxAr<*ahfw))5$i|6&VbeFtGvL&qiiH5Jsk?{x|rHx?_fW6#WOZO;#Vf58` zUZg+%`z~$8{Bi)r=_s1z^Z*9H!c9EfR*A}Pa59a2ay@-ki?kz~vo(qgfV*(Hd3cD&iO$^U1-<}SOb$)F* zXA+A|X8^~C%I(x67YJ(!<0Jq%d@Cp?mKFqUS>E11pG`9ph?|v?|5)7ejWg1$3IE#u z}n)K^Y7kVTp7E6Je#^zJ*6WkA??sKEQL=Z7mAe1je;cri2Tnv zFld$9ZI@v}Zmy)M7qy*U;O6(NWP$B9X3LSa_B8G5UFo#<{X(?Y*TwV*Ck%U1CyDPu zxs!`2bH8Y9XLXRj%l>_PDy-d;qFN1HPerq^j%Fu0YMW@FCibsP7~I~VLB}L+;0QZ$ z!^eXP+4xZTM(U-pFmR+zezY2GL~OXtcJPX!+S8Z`%% zYXw_elYkHJP%hi%Nfr%L4X^4$g}5{ro)tc%q+^CxU?#j3@3I~Nxcb|*K3@FDH^*j)+Un(}%UKhi(hb8aXhw%Q)6k1c zLbLW*7<8PZW$+hzvs0a=_buO+(ytmpnX}6d+3Mo|fF;jyKg7AQ1Fa-Bc{r2iJ7~kd zwWa(AlBt9sl6witmK81-yQD4oFBM6-_biUyQ&jp)#cf}g&~Du&nn<>uw`}xrXB{%P zf?2!NO2WZ2``T>oo;4@aHdAVqd+?ZKIedqW&R)IZwSVcwG=^dh(=9~Ut^Tvn>Z+~0 z-??d=f3BRkKWz~1p+__y^K;$2l1xoLHbZ~;(ehfKbFCaLidxUba{5c+ZqUgwC!mq= z51b%j^@sfemHLIze`rc!cI79+r=ga9X1Dt-2CzQ)WS!t#?DwZc|LBKskpJa7ZErN# zM{onG6Sv9s+bU^b%}iO~ZoRQ*k31pyj>+GA>$C4o!~)F{nZLq@RG}6SA5+H9lkLA_ znu&)wA#tUbPaJ6FQBYr_M|ERy_3+_Ju)`p*!|;L3Ek7tG=r&m*23ONb%ES$N4h1Z& z#;r&=C0RzTqEWiVSS$voGdG|COEm{jPO9bne5k@!V>+K_Q*Nw_OIz|T?eSsU+f0Rd9TxKg(!B6@OHBuQq{nZ)z^bV&C}DRe)A& zmVWDVR&w(u&pvnap_CyVqL$Jzpv)`X{QKelbECvLZu{*z4Yt(LbIWfaVEbfy$pm}z z#LTz$=OwL^$?{hDL(z6OUr%*D8|}bBv<%*Y(r#!SZLKL?XYC};x_nv4nq8gXcZ=Ll zXOgbk#G74~Te$ZBi+}efo##%~dFYj@^xUG-`Q*vXH1C|1JhK9ebW) zkHh1j-z{^<{6y%9c$Bga%JegvB$6ipiWd0jV>ucDbU`27mxW$vAf4=az(Uza@egOk zuAfv$QB~w01_Zpn@ zemI#ZHKtG!T>e9pp=x@U1>@Or24ua@K|D@-+pUu=YyDiC`Y;hWhOBjbo=a%%=jN{P z(E`b`c*zL*RkHj9pThKX#4-_L8%LbCo~HqzEKKR49)PG4aV!r#>epT_63TQA3O z-}k%I#jK=b%IH`96s=Bq9_sk_Z9cyBIe-xEowKHoBKcL*YI&63G3fArX;+Kqd&<`H z8g`W^6f4h#17J9&s^z|NGLZZ4yej>qQD*~Ry-8~yqn-z@!4<l4jiU92y!PpW>VaV)PA69%d4Kv>k3+OKW{VwFVSxd{)^L z0vj1DOFy~<$=LnPX8n_=%gH8q>R*yH#Td$^>Wb4f`^zTZk0CHL76nE7DSz5NQk94r!migs6Il04}siMsmmf+xC z_=OYn2_9X9h}VEXWa8F3SY2(3mL1^9g`4jRiGPehcu%y$;?T}2#-jNL=a)CRbXkn< zFsIF{uSzNInEpNb-S{|t&&C!|uIF{8ToHqX;K+r4mDLdN0`beHmn&)fbE)Kn|z zT&`R8Pk-V5=tgf&x#zc9zQiR=dJ|3P3`ul0Nm0s)ZXRuD}rT<>% z-6MLEeX$GoS~Is~5e(yZ(oJgm^YO16O2J|4Sw~Lf3fGH8qY<+ zO`5%$9Gb?7J(oaz*|%aJR@z>zBGxQN74a;YwqFdlzMO1wvO4x{n(vZL^HAxW>Rb8H zh;xE)DkFyXN7-;BC&?I+#o4qUkyT5pTFjXw3kbJkDC==0YWhFid0|zf z5BpWrnI2;8)bave&gRP;HzfNOm@GAsvwf8Qt2p)&-G8icr`X?ezCE$9&oi#+eR4}W zS6sP%v+%v6NB>iDWhlBUJmiy(NS2m3Zv{45J=tBhUrrc+pYi&23@0>{58RcelD%vD zh=Yl2f1jomXSXlj&4b@k#`=s{bSkMS7wy8Vdsz1n_dml+aVpVX!7T56R^Pfw>8`fX zGl*b&+z@$pMiT(#SFp%Z^Qr_=YIE5bIn(9X>AET1yXdVf7Az$~YNb?`S^@OSw*8uF zREhO0ieUh#&*lpu$4Bz~lmbjMjlH>KLs~+JgjS+S!)uGYioOF6jF}3=cucAR{Kh=t1HCbQP1(ITd zIN#6D@U;ORa@cQRc0Ft}VWN@AWjpP=>)6X$)D~#iO9lN?&^x`VY#J zVy2Td#Aa4P0PK^9^_!A~8zaY1x(2B zErJtn-Eo?Q!h;)#HJu2DcZ3jcoUxUDYN;J(qRyp?KftZZKtJ6oOF6mg>oqcyaE@DdWC2+@jVTAul-)boHN;Aj`{Z1t)|*K* z4;=&pb^yzVEOhWP_jD&YfAg$y*XUrus)Gj;?~YD>CpwwGV^pQ>;p1}a&%14yf1dkn zvc!FM$o1FpM{53ZEVHgke9f`!Q1YugXU}QkyOnkItEsII^LlPj#EI1b*tlsgP#o${ zB*}37S;nBf*pSD#n%B*_5>sL{5J4&BmmXoDgdG?hTdtf2{UJvW9MMo-k2%8JK0;$s z<%}V(cZP2T?s_rMDR_VswcE?k*HN=67LGJQFrk#T1ApaT!dYZ>pkJv2sq_-f)18Y7 z^!?G2P$F4Y;xWVOWrj{&m2Fdhq5I=CV3Cp|LLA0v0!DDpo&V++<`C-5i2t z@vN}^a}oJBU?a-X!PmKzMo;8YdtGx@!4{`{Dp{6vVrW%#D7j0fmNwl}>&CnrMdN)C z*5gXO7Ug|K&Fr4I5x0DhN#;AKv7$;3MuZkV{_HLIB4_YL7S4lu;59q-9yV#jEjQXB zr$5MY`hCdhDP@v9OL$r8_$hp%>D?Re{9=o0{)@fQY3t(CFMaXy?Jw39x8paW1FG?w z@SxZDfK-J`%WviANjl$N2BvdBw9wt=E8VRBb&Gl0#2wE@#P*2|z3`$>3PDyayFS`MjDBx6FsmN)00b6QWMTzL>K=6o+ znd3DUSPGyknUX<936_*dqvpowy~Am=-)IIoW#dzD-Tx_C2Jrd+GgzuPEHcDO&3Q}6 zi-1KR(aK^V`AD`*$E)b0~pB z)j+?|6$p{7SPeFoFa~%e+k$w{dNf84$9VF zFKI@7{zY3TscqC*$@D$&rT4Glnum^As|v{AY$RFvmM=}~)5jd;uW$81<2l_ZcWXcB za#8v%u@q9zztR^9kMHwzqt!Ip`eW?2i^M(C!&UgmC{JcTn^aTN_}#SXJ$J|Mt0*`3 z8b*5-ceGC%)@SbF>Y-B2fWCJxGA$J9h1@GYy|5zXf1atm#&lZU>}S&#t@gb!b-8CC ze)U#AeFGDV*#c4To5c^Fi@N^!a-Z`fIa*Uuv3Utvz;1|}xH{y-)v?>?Nzrt-uK#nl z9tt@HK=Lg=s$dE#zD=^bsE3?YMV+bDt4bB3j=}9oA4q&h%5X^BR_edh>7rN>2bbJS ze#gN@hn;cw4YV#BGzYzo|3gA|f!?&+iao^d#-_*K3$Sek+vBA9Ag_liRQBFb0v6Ny zqg&CMxWBITwZa>g`nd@jG=kmoyAU*~7NG2x?9lNs12<5I5+kOM9~Hp#dlI*W@&|RQ z19Ed7ApiYhXzdR>J~)|6+4U*K^|4-{^8oO5ueghmW$qoP_Ve#yKGkd5;)@FQE(vcR zwuQr_v&&i8lH6!;9p4(&P}_F_scr+L3j3~S-rGPq3{nNLA_QT%TTi4`USR?wR%D2_ z+fLrhRS>4`RM1~?iDBT3jheFE0OHzI;s)Ko64E}nLE+4Pgk|Z+NPG^5DDFD!Qn&z@G8F}&~9?Ve@6Ub5+q*}Ewz zJ(~NIx-7Xnwq0N8*42G)zbGY_yx)0mvn&%8m}JpgY3@Qd1o6%4eRtM=*SPk@@1kj2 z>d;H(_tH1fvDNhSLRPzYC2GM=D3$-i3H^`~@&F+(XEUYwYYS*$IXx|L`>6M6O`oZp z<;#GUb~2+8mfXsf`>u9KUtgpc6es6&5w?ytiKf+V8vG(Iu){@r$z3!Yu|!JwnjO{x zz(HGNta=G{NXprMjOKrQirT<$m!W^-DIXY%KV33EwcJ+#-u@JMJ{y08Mh2U(|G;!R z-k+g=esB|j{>82&0Av3;r!~yo!gyWtW&Yn$2vt4Fv`WgQxMjcl_17 zfZS*@qaJUUY@>dG!@Gj@LS5l|8BEK{P^bz>a!ftX&IQ1>S7tJe@@faokhLCA?2$>w zDkJQ*MGEtCsqMBfDD;81DsTH5(a+C4b%H{85IdJ_BIFnPIH?<4v}d?Ws!HlwL>=5d zuJPAP&t2!tEaB_I_62%d84etilNx_LU#SV;+C3FRucrWIh3a{BlH=R}7R(;6z}k<- zU#G7A~+?UHvfF8{df6HGm?Uonqi;#SC_LBbN3gHQNpfqaBF&><#g8wF1(w)@2V+cxAp?D%+ozLJ*A-j4wgeFrbX@hB@LM42Cz! zmd`=DD5KAHCvdu)J&v+E>rU!=08F9E+=9~&pKv9v18!5pY|j%^V0^w0kj+J`e>)0b zp!SP+xM8C3ilV&@U1#yvzyeD%}*Kb1bexoUXdoRJ0ErB@f|)}X4GHR{76kB z$qwF2vK0tKJ3Ihw=FC162({5p+Hg(-wOO{*(@hDL_B`BA)a1>dAF<>eWq!KVbjvD$ zUpq9UFy>6BIi0K*oW+388Mpto5GX*8hekN5SwX6t{Y1r4$VXX02TsStV@dx?JA0}8 zb4%Y_#D@>?#Y?J8i$14Mv$AO0;rw(Q}Z5Nuo|!ip08;{Uze$O{bJQb!A}%4fV3;ehXV=5pnX6a+jm1 z4MLNfP>zE>>^qEEg8%@`mdf$QRbYuQX1ZSFx9(x3;-$^#lhL{ z!G1YujYjS~djrMlP{}a}&=UAB(VA?rofe7=JzYBHJl%+@xko8!86IC}(v5JplNon_ z@pM?jd+VPAPF)xF(ETsecZ5zbc0Qz7*R>?2N^0F04?>(n5`MiE`9(?fm=EniFNNWK z1uoq*3pIZhHLNn8w(k3HY}&f3V@CFFeVkvnvUitnlauC6tuH8Ob)wlBamAXe$2+Ht zd%tIwdqz`1Uq*{C86x0P4-lmehASLbVHo*fpK~nRmvfwa8C? zeWz@GbhG&Q<%RY`wQauKCM@t=j(c|R%<7rKf(@1qN34fUelFw6wwG6=ob}A^wXSx+ z!dM%@u;lcC1(&nF#IPF3lb=6^vU5Zq@_(h0R9eJKDZSV}J$)8*fMGc?R9>aySo?7c zgqFJgybg0ki=BqD0gVb$ox0B3Q`^XPS*9v6;fZsap)nF7YE$kevfRllheb*uXYYB) z!<*z3Cy@3jzi441_RP@Ba`ep^l+IeY$|>h$SCKZq<5VAx%nAb)92AFjiPA@5^vTs( zbu|F1NMjzuTlS=FetW{H>ojmDCC`?#*X!T}#^~Vs(NIkHd%7wALS+KRHA-ROfa2vP zhOq=sB5UAii86A;YzZHnm`96HcWRI^{~{dzGEzSlO;?8n3Pa@&aGu7172y|P389JH z!H%jKg4;7YG0i=svZMwn#~LiDPjwySM#*#q)w7+U5ltSBQD#qSh5MJzQ5Hvk7DL`J zi3}22ln{HMdQ|qTi(^-@#tEPRSSp&cfFV&D2s41r88d8VI2KDWt8F{O(VafM8u`64Bjphbz15AvSan=Vs{;BX722+U&2lt%Yb(QE8rwspIm z54Dpg-a#*|rl613seY7QW9sP@p$=Q>@(RVgzjCv1;kewB)vCp~YZtc2=jrJt?5(3| zU8>x%m`*Ns@<;e3IkV+G+4k~Rw@GI}V6(2EHd5j?8WIrX$NR+suXPMWXESJvln?fh zsVl`*(p5?LF|fnofv8_fBCL&{STEf987aSeyajFj+l=XwLmsa+Lt*nB>p_WAC}W=!4uH_IC&S&>mmUBDV7F)?291Z}y1R38L}^ zoBWm$=z;zp&fWz+rgIA)j%%wfX{ChHPOHUnjZ2C9ZtJwFO4_Q1QbU!rZgHtQdG$h0 ztE4D#pX!AY6{H&1Yy?3tEh01+xek(;B$H&Wd#~?#_e^H?p6LJkzW>kZ>G?U6$;{sG zUh7%Ude*aYQ>WVwr9b)OC6;QXIp-0byth%ZnmV7DLkG=z?<{qLAA zg|D}YIb4?fOk_%iJ!kaR3ol=eNto&WK$PFT)F-ABGbr>4DkV~dbi~lSPi~hyjM{-!=I_zgzrg?a#}z%;f5;t7&*Qqu z6^IGcQ#yK(VjYQ3LZw#4>v||Uos)eB(9;_dzv8x^RZ09BQ?SdhVm+4gsSEGuJQ_L7 zL~l}jUWS{j&BvK;S43{^zVs_xOp>GUcXl~;lTFkXYBo7;lN7vWi&tCvEJQu1RLQ(v>M{OH)Hrr-7@hUOr2 zHZihB23qZi7&;c4dk0v$`<_qgF^62jb7-1P8uFf@! z{E(sUoXu)ZwVLeE0q}_`b#ycc+>f!%`O_>FZ7c*dkVKZYCz{J0T2zX7V5;I?d+JI% z1B0WHt?MCIt*m)Z0M%(Kap*^2`_2L?4H?H-kB9Pv$J1hOKb#r=!in!(Y|dRSR`GlQ z*%2Lj_XxEC8Ggc@%+FObyiXUyAemwp-Yq3i6` ziC5MOb@%E!$7E)onJ3K|mYgZ?&Al-1*))r@uzd8&u#^l_8`I>)@&`L9w~zF@cq!)B zjjq^h^Jt4>MUt2zRo-@2#0xCNm32|P8#bGkSH>-D-%M=Eio@P3`)2#azFij&*xF-K z@Z;IVSzV;pT8bsJx3=u&6dgg(#~$cYNFzpB@jYW%zlYBW?lj@fmR-~5KUIFF>t9mr z-bFVorX}`>Mm2=!ixsBNAP7_IIYV3+QfcinwH{SU%eszpv-(}pZh5?9y&U`%Mw9&n zksJE9@JiMU&H_S@!}n;#gu8ZX3Zohi+j`>$rCN1!MyYJ|(je4iwJ0=762IjY!h+sJ z7oZpbeCQW6BdhB*MvdQ zkyptE7%5yu;OL-|qG<*KL6+W!&p9ntYPRP--bH&bgpC(Z*VPI9-h@C2&CRu1X96WGucjl`Fyoy9I~M}30DGOw(7bH2HA81 z)zSNY;YLIeZITQC2P?pInJ=ZigVS|LWVU_#Dg7rKn+n2Fb4tQX*v#vca1MQxBo+5B z7Q-CNHWozQa_Iku`W?@dqfqD)&@kA&hd2Bxsk{>NCx4Rbe~0DdZIC=8-TFv!e&F>v z3i|kxlUdIzhauQ1fMZuls6$-zrwmjxqA5fPO(kO`3+;N1)=r|RzFdOiA15ls*on#R zFwF%u;u2b`52B5&g4D^sQ*9u>1Gg!9A&#Sp&PxM7{J8dkh27f5F*hSuwwDVa2>l1fJN6eDq(^4+-BQOPr@79y~C#ZjK!^?l3e}HZGBEzZ~KE=Y_c0M^{QTjoQM$*hh43{Eo}M`TFY) z{P?X*8%gG?)Z!Ke=gJXk3TW-$6rMu5x|GIcv_FCMUSP!?PubjvqG!M}MUI2gx$63f z#!t$rp&G;{1-_VPAwhrHAe^TH7?U$1cBrIv#fP2aN`{?{*m$2D*V7k2zx`r#$ zNA{|*k4&&grk8F~^E5M?68JsuPiyV&G6CLHOu{H$@@F>0)G^+_#nR~m3Y>WB3mZsS=C{4#?@Lo$l;IMW z!$?=6O&yD!H{a>>^)jbf&7`x~0bS@beYA zI37Anac+Cg>ArxEK!8{Pl3QE_HKxs+zafJ;v&Ua3(aoFxzZK>$(?!FKzaIz>N0wHU z?av9%+MknrGx6ow^u6<;p*x#dnVD=#*(}OsX5&1z*%9iV_|Wv%th0`*VFrV-mwuA5 zk8#i@Lr&fr+zyOxLAbu=Ci+;rl|B~klz0_Smo{E-c)(k1XApXil{PD+#ZDyk_yGO1 z2OM|?0ll|sxzjW+O_Gkr{>}%w+SRXQ>Ks?;JL8@NXL2#6R=Y`AtG0vkYGS3G#xJ=F z#YbvZMdJ?uDB36RKm^jo+g#u$y^v3^bXV1x9$*j*hBmJ%9-Crhv1KKe@U(qGP9smD zseE?YM@d`}jEH3uS2P3dl|)ILYxTSaIn*1BmqQiUaR9kagV6>YDF~cYfyDY7C>1h% z7fg?Lo*4K>H_*uumL0x_rr({#9Tm2#`G&5T5FuDrv{4cNxyY5#{c7wn^2y)b?T~~n zUdG0C?U`0lY5eu#aVlI6!tHfRs&TJi!e080D-#kh7?dPT20v3T^0WM5Amp*;gF37Anwv)gKz`sB%MRm=H}-o-fqB3`!OX# z7Cn1q*#oWD42RYPpkLDWaAI1j1yy7S7zEkh72@vNsRd zl}=ax(_?6}kq}!KP_mCk@%(0Jb4L5H0Xyk7TDi`vD(fI?7f}lrBm!_|o5eNQ#~dRS z8THk!6L_y{hmA{leawK8<kxW{@1-ClgL z!hj=R22RFwq`-`NlvQC>&|E_(&O*O;sHDMaY!E>v3+OXoD2Ao6Bt(Jco~bX?lDA2q77;;(R=PBb5;uJbb!hc-s*a1Uw?FWdQ{d`Q ztkwN-bKGGWb=p*`kSZIF;CuNVtR;Bw==;0@Hs=g4zU(NzxOJ8dIx{s7i(N6cQPS8(VaNI%@AH4g0kWdWvRi5_*>SGKHqCoedLvBFK-qBE z%ob%RegFd%ngG3ee~E24e~%hdWD$MuKgCm>tUk{J9aO=Wp9t|2QpSH#i%N!Y9ir#a zTv@)IdRAc#f$Ai$k%UcK zEY!S+9l0`5cu+VyMV2GJjY2UkON^GNQZX0ire5{uZ0Ven|8I3hyJFi zRK*RfH(G^;Dk(L8WflPLDjQJz&ht4|5pk10_tE{yS`>)NQ4Ds&Fo*9v1AXxJm_{?; zJY1DCd*Qih44!T)Du`U`4*Fn{TnL#Vt@>!7rx5Ko9D>806DElp>?}6POnELUN z?jsXPMWXXVYM~?9Xu_#MF6;+3&@PDDd@03n{((n$v}+2I&!Z5*((ha}El(AxZ5uE0 zkh`IP((wOqam@-9hdX^uAz75#OgYXwHVvSx_h^mX%Eq{RlwL_3)vNpIGu;O+o;k^0 z95-jay==m&$LmL}->3&aE%*wY$FQAR2nfF_Rj#D?O9!%)*3K(x7dz79LYdg_{F$8o!tAUIK zs*CHbqRXrdotYp3I0#v2G+orHj zcPVEN*%Z%G+%xF6Je@StTm<_?i5n;`<1X;vqwy}kCECJHfxD4SREN_`gk7Y!c*>-C zPfn2Pqr9HUb9z7}|i?sfX$|x9fFroE&uv?NYVJqC$hED<4OF)bDeMfk~}~8l<__C6?CSH-JoA zT+loubHXNd-K1LI$9{56T)?%4bppZcaXve8mDkrnpIbpGomF&*R z`Vod%cXkH;YJ-Jk3h)(fQhNCy2Xmg;;kp_2$4-6e?ESO|film5iRdZS@Ppc7!H*jE z06QAOpPL{VA}IPUP1YE(D8$ZLIq~ejuwiKq;<3^XusqBx)HC~cVbmKL(Ko^Bjk{;u zta;sP)fAqD`F9?LAiP`{)BFmAzmb2VjZnoh)Ujd_VX%cVG^jJniN4X!;jiF!9JmKQ z;wV0|L5r>90^#TZ}mfP?tpRJ_Z`*I5iu78#<@!|g{2nMRKP8A!=eWcVU5!+^O z(C~1TQda@Q>t)D-M`VHs)S!pni9vtfCeDp*Qb~(*3Fb?EgHQ{`qXgc)0O(9Pg^+cb z7Op82dp|b`jloQ4FQ>MFRSElsa~NKHduc~w*&6(kyZr9>R_>yDcOQF7PM>%xBGLHz zDR$;6bLJOfaBz2C$H>f`VeVh{%A-ILgu`h57I6m$Ef>~zC3R5yRCv%qJidhQvLkAS za}{z#06)~jh3Tp)GKUvsSF;HO>sidGsYdHLqgB;87&_EfkWH|2>d6x-^Y79ovldDG zI|rtO%6Qe|%n|7jw+>fujT+yM43^`-7E~Qi&XkcSR&oJ?8W#lg3_M8KNErH_I22i? z)L{Y-z$e4@>Z0 z)iBtAwLVy|haxe)#s*I^Q*4Jzb)OGD{~NQ`erGuqs;w=2Fc&QlAT?jt;HFzRM#%+u zg#4fP0|-{QNyU`;1PsrHDokL%8vAO2T&RY2SN;py?TII6)MCE{z}&TCsDiTvNhxQo zA}D8}qwLm=9T`)$Zc=H7;&qbv{QdVS?9C&GQho`EsEdh%(ALjRYW?ikHy19PQy{-k zaa)LzbBYq9BSbk-bUUoKO_SuC%<*&1lBe!<4ZhdC^~+{UHnT?8cQ3gL)P_>yQFIrA zsxM}Fi!jg;*ngvrwzy60zfu)FyrP3S6P|A`ldCvhO)a8Xyi^N(G+NljUTD!xMTh&* zU57?SETD*f*MGs4S}hkf)dlVbfdQ2)`utaL0WTIfO$%lG){FFMRYF%F_i0)!;jyYB z7QS@wHcx{hzhS3xl&A3tiiD1Q1_ia6pXPej##98p=hVX{EKM@-W3M{PChF}JKUM*z z0pN(i%G{(Ee2JebtwJuR_5Z6u`J+)P0B|;w*dxxeq-NsxcsMVpL9}NXrbE$c^#jMk54b@Z37ws&>@>-Hf=$N?A)JDUaiOJ zgjc_&#T!emn(iaYmgd|K+o|uJZhl>fv9FHVTI#@+J7t8Heu-?omSJjngYJ2#uUzgM zuJp2_>~8eSa`A2V*yAMT1ps4BXsWZqZnJpFuBf{( zQJtJ&t^b8p#j>L00R$W99E9G^TY&HGOS{peX zqWsR~M)0jS=tmsD8#Id}&%0(3J%d#6Ns7L~kZlEHaHiA@0RW~v}v=pMtR z3;XDBy?z|aDnf^i_;gFi%Kx&6eGeiK!msWTL4A4WmDSvmEgqT3jX*q~afuvl5szde zLw9z@wOty`y9bbXoo5rf+7kk6b&z%UNS7GKyU?MXY3LHpW}{^quf## zPJVG0Gyru12_hd*P-+F|TN?^)Fvhvoo;2SKIW?_i zZKcREZNie0>Q$EJ*D75b9Mi!*OvVOCYzd)S*_-}mfFb~S6b(j*QmaFNCB$u6{%jpk zl>-aICGiFr0dG53UHOM?Q*Yh;gG=0gfMOtGVI18Dk@fUTsW61TMnhOAOK(a zDlJq!art-I19ce#`O94@*h2=lj#F(#M00D7+1fURR|QpthCYBkSD^(S>5om z3c${HROFzScHmf{s!6EtLe_o+11;@Amzgq3<82VGS9AxTLwA6NYjjPG>O?u7&qKV} z?hv$VMOIN=`=>(eqUpq-rsr*3&=iOj>a*#|^!^Wl7Q{h`FJl4IvJE}D@noD|a~zi_ zyyN%7ygaw&K8MI?-tBJcW@0p)<-FcOBSr(0_^I2vhi<==iODWhU&}!NjNU4EgfQYj zY*graLEmfckBfhx$KH`IMqSRz`QRq?M@f)GYw;{qJC+zc_TeCY3Z|f zTrXZ_AdaxwmG%W(MnnaWw62u#0o-m0@v09kC z9uOuCq?sx797N2#wdqhL$bj7h{0yph*dEnD;0hRsSwax9RJ`3`-aY{D^EVBB_bRLh zmdNuCU6~qG_WgIx@Q5G?W~XZ$L?Brz<~LWr7Gc<@eQARkcoeMA-1x8Rd5Qj!nL|$G z{R3_a@^6Rn+#xcdKJXP}xojYXW9X-V3wWpadtBX5@D8lM$2D;D*5h=v^Ayx0-v|`@ zdOH74=z6hDwm2yy=H!(#6iE+onL_*Jp(k5dPq^kZJvRRQ!R(!%cN#q84MmwWX}%nf!HSCmXwiF$w-E0@Zaqt_ z)pIZ?z8XW5G?myDmM0Lp%UqoEz?af|3Dc3=A*;wX&)!H&%risY*NwWUT zCNsSRKE@)6mWR%SOGT(!-oYH$8VB{dMP>){T{M@cZJ-oY+oKZaI7%OR5APY?D^?dM_{60MVo+1Je}tq^?X2i2 zsp7a~SH-2a#l(!Jum(E=F=jPM;XiMlt^Lkf2`vDXU!Av}8bN6VZds7@KY)E!=lWba zqA~`xbRQ*Q^w24`QMbRk6|e^?@Ps0+8Gq61no3GB7TQ`|dz=+0EveIdzIEPf z3Am(95+_j;c$PS-)L`Bya0Mh6_@WTfclc{2@UO z0NpMwo$`)+pe$4@EXg@4ciU;1!ZK&(A6=C@Pnzib{cNb|LAmpE;gW<%!E2Y{f?YKaYQ^Oow0%qyCS;kC84`0opxoGi|pJedPasNWe zAnIY$#>zc5Z4;=GGQ$Xy)C0{PAOdTDH_oVdL0V`y{0U-OTnQoNNs`ZR~)T@J=yCdRRZ;h~Ubx`9% z*tPBIlsAk=({EMF+xYkayUZ4YNnP0QcPZ*1j$KS>DBX5VKeuF8JB4iT9r|0B}-x*m6HxRA*K78VRvHbHSKHFp#wqbe!W+AWwoL8<>OdXZ- zUm5Evwdyc7nHxTpbwGUk&eUy41KgFw5hyPUCjmR)PghK z3O|6?nC>WbKZqVYi}UeTnp5`pUwODOLJybWW$!#mxse?W%9O$#?&z8>-Afx6!7iU$ zrmn0R-7len5`X#+>gxW(u*f2Nw~?I=v5nnA|9D21@sbco#nWaZ# z3MOo!y@}`2qG2TD*qi&)=ehRZV;ny(oa_G3eUSRM8J&DF>7jYZ^{p}Ef7^Um-}Q$} zSvgJTEOsf+ynuoGayE2qf9if^`h4o{V%#ACvs_JFqOY6colcVUu**rJ^ZayXm0Qs3 zXL4vORfmp0_x0U+EHU}jYdPRh%r3Yz;43&vm$(Q0y^l}gsY35)hq$GPMZX2UGO+;F zxHrd(zG*Jj(u{J;-(}^);Vm4(A7)AT0O7^r(r;7BCN}r!A$+s&AdQDHe{~-KRTPI7 z_9t6}!Iu>Um`1P*D*c@&Ug=j^=q#jnupY2fSq~s~!dtR~CJDeH3KAJP@%$}C7{DLq zDX?C#(Y0!x2Rl{s!wCiKteF%q2(KuSkH{^fRCHvKdsNOB4_d-*x;e(izLZ2Cmh_pk z2yeqV56@mem~24ta7n>5jR&E7r@DIZuC6LfBEw&R65IcM_IT%EcY{HNv1YCBwIhkW zYGCl{Nc8AfcGOfv>Wy9;s z^p%s+>yWWKD;>9#*mWfAhl+!BfawJ+zEu`*UeAk1S`AROfkKb>FD8zVqh9>1N@vxW z`^w7Wc`60hA8^&z>_^_j1-*>MzRzkP&`cfFgyYHxIk5vS<`90M zc-ZtfX_TPVHCc1?T5v-#arX^scm8N_Z1C*1L33dQ_@QS&AjV_RX5vz|s*1|id^Q<- z1?_Q(y)D!P*YvR05}jLK#3~1G21X(_bG0d#qSMpF?F1@cy^DXweQ`~A_n?ZaSJfUyPnz&G{k(k|#CVR>BHEqvGg695k}7 zlDG@*ro3z9e+qH7Pf_tBJy?YD3g)a65Hpg?xUonrY%M{~<`oaT0TqiixK_ngXnTx^ zwwQ(e3y}whCJ*kBiuq5a*ZhZ-vrhxY`3v0GDh*rlBRPuHuw{6f5iQ(r{v{v4ML2KkODP*tze|1TuJhe@sIqjMQtuSLj2A-bhCW49o_g;BY<6C^7Gl6I{-) z4=aT?{UflW9f|1q1oO<1w^&ZJnZOPh0brD|*39p$4EI+BDD%X>wlNub;@z>sOPXn?LkUScNuy# ze@HQ3-7YDJnk4l1m{P-oMWr$Kc>H$4bSmcBlQ44pAxTB?XGzh?`O<~r!Ml=IWiKO2 zV9kvSb#`=)B3bf)2RaR7Xpj?EeS#Z1cYwz>fuKulmRhFQD;CrG`m1R*f4TF9Z3x^FOose|we?nHR_q!1~p^%8U5W5jGZm@_-eve)x51 z$xKjoIdorIEEDF`%T#6srOGmgT6>(rHVcJKxC9nrhfDB`fnKf=Zdg&lzP!Vvg#TQy zLDHfJ!#i%#`E+LnI#?~jW=otYgs**g1d z*;Ba}*!wf{AUz%|)sK}?bz4gcy_ zBd7Ixr{!x{i?~cLWxLZHaaNsKxXiXtFLJE7#12?>F81Gz0_r*--b^Oc=-3O|M7l5% z)#*$8RWs$>svl$f9T79+MV0z9C9=MftpdPx)`7gjk1hJzB?)_*OIJgfuh0 z?BH(mz64%nj< zfxU3mf0fN3)jkv>PccfFNM_&Xky96EkkiPKEsWh(!#imGMfkQKoN;h%vk9jY9&7Jk-~(I+g|)Br{&3+*=c95(?pl>7N$iP zIIM<{LOxz)feD1=YlH{CYEhx?T=WbYG#hO~1aXrQalSKZI5ht(v})kmi^e8UB5JDH zviW{6KNX(&|99-T;`N&ZmQQcUhDvIN0usfO)Ldo90-9+mAH}0H=MYSMeE`l9Jmmgk zaAukngH=AiVwDeycg$aM1~s&_G*b7sd>W=_*sYH0H)PI zbQbtLE7h@8akk9n(?qAXxcGjlz1%-YHuAryitF6iFrJ$L{=|Qu&VyWx$quHLI0E~_ zgYH|bkmKGjaR$Ys?dqV#@Ki-q-ABojRYO!&{ALDq-D0CY0FTw2tiIJ4+#I9?x1O(@ z0Zy&$ubw7VubviBoFwLB${v7>Z)Q`Csd6JLIWg9%IGy<~{Bg>{m<&v|u~7yNpMGy( ztVZeAu0ppeHq#}f!ZUDM*5oqTvPQAk8m^G?keoD4Nj|qRJF0*8F{LipR?llGT6$q^ zQ-!5(=WTOxZna)DJHFTDu{raz_k_^7sI66jyXE@@Tfa)#GVGnJ6O6xF-*Hq<+Ys}@ z^o8#nP&jAB*B3TY$B2EbbeFh44)~`p3>?9gdPkcQZO~aDB`JP=u;vuP> zZ}`R}(>WOOlUR%?`((wO@$HBpz7&GHt|~;-DeBtD6)<^@l_9??p21bexSr=2hj3RR zs4f@5e)-*X?NC&8fV~~$op3mHxQ+MU>P}T`eI~oBx~rb$B5-n7KEIoPe(_V8 z-J&M-RR@c|VSR95E_NQ|+eYZM+XnGnX}@#d7r|f#SoG5h*skKj7EI`&Mq_FKs%5Af zxED?jYz8o5z|?O)>D_GN5?;n*&lgtkg&T&Ma^eYpU7ZGgSl^X~V>{XS9aez@j~_fP zte>WH>p`}d24%nx(nsCdg{gqY+*7RL=>G(evKlt!}d5Pjvz242(_;}FF zmRskK`dTo)_R-L$qd(c+Qtnl93gTTX4`u6cCkCeeKx>1_zW7y+$K;l5GEgLxdv)D9 zIC+*b{L6SBvSapuI>}+<;jTdQUr3aXre!`k>}cwEHnK~N8)YQfgdQfEa>DZi_&GWz zM;n43y6BQkZ0KMOCzz=+(zRXu=j|FT+U}HBTupbuRWmk*7S(gzdPpz9f81P2tvl=5 z9Pjt`(q;TLO$3q zr(4wWZ$_o{>c04{<>)c1t8-M;Ry=b@w``enVgHaZt3Jw^Ro*zhd(tpR(&aw)%@@S6 zd*7~X`F^L(U!{yS|9F1Er;Cf~4gc!BEzTzSyT7{f#(sw($7Ly$BP+!>=i_^gDiV(G zt8x7)o(5nMBqi1^5Hx?p1$6Zi13}pO?Mt}5xnH@R%vxdGZPlN5m|ojJ+CK$SL^2)z zSYF#@0F_Gdp=A%~#@1DF5q;0N<15A5mEvdPuI-z-jkC)`;FDP$h3c~@=m)PmM^?$7T#=T zz*wrW{(=hX*pIdkH3P)xYg%=hKc-{Uu0YIV)0R=YLtANEZ#s!Bu53L*Ypp_$E(ttquLQ9Jx zXF%$?`TCND<6UBhj@(XB+#$EVOLhT~Bo`j*+@cx)XnhwLvP-$k+|CF+?Rkjh)V6o_ z)9W>rSK-B$kkJ%sXUAYj?h39qK{jUUV$LPdgn4}i3@Cm{)>q0#hxkkhk2^g47(fw! zXr>>+C9ySyWe=6f*8Hw={JSsp9RKwcH$qQ~>Gv8{@yhm%;!kQr*V-VO8_p)%M{y_-X_B}siEdY*|da&zBMHM$qlrY zYy-ziLSZG_Vb#BuZW9};KQ4I63IEV}{OxiXvd)Oekq`81X|SvxPTJR9rXeY`7MClJ z9pjIhJHjdBhqc#q8O66Fm`gRYvN9p&+#ZtRXD5x^#8XKh`uSUo$f&;dK?>U#^w7x~ zq{{lx#R#cqDJ*hR?eAMmtq?ob_~SIyzf5bF;%+Hl&2^evdh2`OjE}!SgM%C=-lHKQ zul(tbV6y(^8d|M+WhDAC*vbTd9$YExPtMC=Hv2QDKAYF8D7b!`pe!q;$c31jQh!I6 zxTNMG3l;C9@YTp2MQ)S#(2mQ^gWc!C1tKMl#Hn8I7HhjH_#Wvd{_+OJ<%)&EA&Pjr zlU+Pd;w3x%uON2U$snS``zqLN zj;kAeg%X@>T_t-j;4Yk^gg?lDPX|hkT*z#3x9{8Se+;*?3seUKhQ5@x;9wo2 zooof}M*)R(Ke2z&p)u1Y1wEFRLD@+i$xz9bEqBJNuG@90W2E5}m&bZEFpwefWd|FC z^RR|QCp#mDRXd3IW{3FsdM!puD5LvOYBGOP<)7eNH#5&Wb#T|g&uLYbz zj@X+!(TEg28eav^wXeC1p3Y8hLKo%N9fm2gxMvruqdE8Syse4HG(t`b-dG{htm#ep z88K7odk71ldsPtt`8(vqM-(^y1{Kz%cmxha)0*cz(e%R{dOhIf&>uwRQIEGBI8VBf z57=kiJ3(@oCgS?4E_*RYA0|qGSpaV5OG}S^A4#`!r#!y%cJ@A@;|2h9JzOe!(db(K z`wwTXh#;FJK3hp`a;Wjy%T%0LIS{)mYW5uVh7`+sA3v5w&E@=`Md}n=VU+bx+1V=6 z%Q>!`SMTzFeqPsS_LCdld2kE=Gc7dz`5Apv@`7ucn%9=g&HHPNJ8f+q^ye1{GnMp< zZ0cFg>O^lN{T~mn)>p1K4Kvdh&P>fgm?P`0QsUR>Ye*JEM;h&9A5nyhT5QvN+d{C{ z)DLl?04G<%S515P`QpX@40ekGx!n4I`@>pOT(~4OEu!^Z&XFzPM0O^_W%`d@j?_FE zk^Lw_5>HZV^@&_d5oUUiG=UeZZ#rNxMl%~Lqp?W9BV>Gr7q8jzuzInfiF@srPzo6u zV(=d*TF%DPkun@jb9n!7RrF>{9ow099BlV^Bv;X?Wk>yyjnw~u%YOlh((10 zbWHw-46P8SY;ZCjn{BM|D`W8}J}m9=_0@+nZs?l69aP_q!Ka-*6pax#4p(N86v_gHuMAliCb)f5>t30Sf)Gqq3ztie<0s_LU=J%*RfRB zId$!+7EMka?U8u!HqCMA|M}7-ewl1!#%U6co(_*XjvfRpPk%w#%&wE;=TRueW)D+` zW;Wr9h`UJP_e~=tOvk)cBDjMomC7FC#6{Z;Uw4J4^!?alPGRoO+}x|fa@ZUTTg{_c z)jR3WQ_dyH;Ewy>c-fM(H0@#btb;RO@dUrll=+L(jLd*v8jGJ;VBKY0)HF0eF(QfJOs#Jg$5eyZ#QcJg&;$T^_PyRKbJm z9lDNoh~^D0;SDCpX)Zku6l1daO8AMMR0!e1>vBX*?;Aaom}E7$P^&GV4oI&~t6@Q{ zqB^6cutl|wou*c1;jI(=QwLM}aqKEcoV-A8i{v`LRuMl)OKMHEin1%Q{ax1Bd-Z2o z5Z&}gu&Tg-(2(13A1VTI(c*^LfAnox8C$3Br}zQ4;mF67R9m@QC8FCU-VU<3OqU$d z4b8%5&HB>M;y=Ms#@U+T!-h%8nO2cS5Du0!=)0k_*HXi4V(nnrCP(GuC4RH^@_fe% z%ZmI`*Dw7pe|lqtu5G`EWl6#t9dnP3-2F#cvT4pS>(Nz7jdd1%?1mVViGJ&|C8o1n zQ5M%~^t$wkyWJHXZ?2uR*cCE!^MzyWfSqhoM7mX1FWNwVW?Bt{ne!w_hs!iDT^1aNyc!Cnq)4oqn_z~e6YM1EH6;y+wTj)1mN*>`b{6W|R zt3`yb%WaF{z2QZor2{8P7IBN~#1)Wc4rZW)4Wy2g>YV(_BXaU;$)NhIBVFP-3{e3M zsQ_X9GGWB48gw;<^tbs}+VL;35Aa}#l-WZYh;7VOdxnX!uxIOIcq9kJKM@((L^l_g z+r*4whY5$)O@o|5Wt=nt)J$9|HlLUXd6pkF!$D1+m9*so&st8=muJ~pS)V~yW!e+~ z%$jhvHQobmoF+sSRx~UvZRgh0gy3+Vssq1RCC{z~d!?VWbb@Wh;eRd$HA2)+jY2Zo zAum%U9nQ!BF2fE~U4G!G&AGr;RW+?BJWUZ@?NUxr;IU4@oZB6-u}pyTMUeJ{J7&w!Y1yVNC{8iAN?3RD(AI~6LlQ^jM9 zMw{%cV+kHVz`n36^62b~8FJk9PgdMA$$L|m3{80;W$J#jB@Y~&a)(_LEQSv);>rh0 z^ozvW$Jo!fAvrG7HJp-9=eyjrXO3YkwzEBDRZ>4;=#@~AT8CL>)d@R;i3MeE!!wv=^vG#f8>PQ(H>Ja(2~4R3I2ET%S0LWG{x673$Yf@Nuj- zd<5`=id%IkdHnmHLca8um?(f`R!j{Y`g$1f!68F(4m(f3ID;FS0xm!wY#J4p<5m-A z4?p|l=mMzZ2VI2B>pp&HNB}Zwk1J8;9wUcO1 zng68n&!^ijx2)af>ptvB`@I@xyFGrZQ5VNoC+5}tLXZ|r4Qf`pxbD(U<9Ojg2OB0jXk>+KTBG3~VCrwA zgdY%?G_{CQ9S`N8i!)0oM>%JNFp16FN>#u=G^zrdnSG6n9vCP$=b?P!7$Q$8pNx2} z#C$rZxz~K1UxWmI!Dsv#861s?*3ebWx0(Ys%J2+-4&pq|!7ga*YO5n@eaNjuU}v1# zScP?*_dlGQwPdi=F*_3xpH)>U@@BUhw<@R^*vLju-JM)X`n@mLdp`We12(EA_WeyP zl7#Oym*^h?@iK*?7my|=dr6uyw>GXKEf1%}$*3qFS(6|yZ)X&Vj+N@t{+~+aVN(3g zc$-T|kCSCvrHj6V5(7fiD-`wJ5A~KRf5!1;7T_$b?4@H%WOn^XM3|?x!>+a1<@_wG zZX#-tJO>B5o*LMbn+yM-wbgR7ey3#c+(va3+|DiJ(`$JyEo|aNaQ;w=E@kyn-88Xo zuerhT36~n&U5Z*}@%nruf73`!?S}Y$*Fgs<93E|5FwT^6C6As3OEOp%GT3jBhy(`1 z9M6X)Ubsi%4P63YpDNT;@iO1>l!LmJ!wK4xMWdRwqcl8f8cO9Zl3Lnw99;j|TSJGP z?2=8;o@Ee(+i0*aNxv(bof3r3YHoxdWU+uDk*O$}hrtSs$BtcNBi4fg_NR5ku1{(n zDx|IrTjE4AG)~DWZh*Cz(y~LiwPny$_}>vV z$h;IYrk?ZI%MGk7^s#>Y;H|9H#~bm)k-s{lWDu@Z1vHqKLJO_7h@1@E3Nldekby^? z`ZG4Y>O=H_10TaPER-=1JcHvw9Hh8+c}*Wn`M0r+IdZ2}U#hB!aopBiW{-C=u{Wzq z(4&|h3fm!tA>}lXEE}b;y=eXvNYQ0tpLgg9|99?#neaGd-drh>N4W|awhkk*nd$>Q zK^?BT^oZ;mAi>E56NoP1;qr$2E};TuyBqV6<@u6}NKbC_=kk>2>BZ{xaZN{XRpEcw z2KsMACo4Z&D0_oDR*1^`{gWcscdP5|B{alFbvaSaj@77qZLBmeF7bseb7NEGeJ6sZ z$(d$WxW+2HRCQ@gR9ttyiKeH}r>!ikHB#;0N~)dk1@AkiR=6#ut1Nqt6p;7oYC77v9_x*2i7!G)zcoIi0nd{&#%xazLmQ`m8-5F31`D(x@wj zn0?pSPAk1*1!(X;kpS9O`WBcOIi{RneH!YVH-gOWL9P9d7b5I@xvd8rG7U#PsvNC~ zP))1i{}2tuE!6P>#cxj}9)8s2G~yu&hy55v#mUst)EWG!sM;}jj)vUv)DB)&P&iI6 z(oRjx>`;b&NgP%+aPZ((z{4mE#lhNHTV#}Q8Odw@KnRDUYOk>}USn64Du{x~Zow>Q zqu>#&ut0sye_5QaTOp(TTTiZUvlMN0r-Oq?)fGalI$wK6CQWEoNqsn2(Inwdzd;67 zv7p|H*g`M8t)i*dlf^{qz-XwxG|H8Si0qL)EDG4K3W5t|v8qk(7GYnu_EEr4^z79R z41zi3Wib?0`Zp@yWHYn!*es+`7%N>;`g{rhry{LE&8yEvH?RFh+i!HeAHO9pFMI3@ zO9LqJt+#^S=@R7r&Qq%VLE;PGtBS3Z#5;Hj3g;cXNu;JeJ!jD!SUV@W1Y}mtX-uXh z5Bqwb3Fv+7@B6IIFc%w=_uJ?d4O1|hKpIY1aFuR?{n+*qR}nC)2O0XI3u z&e%oEEgH@i<+DS?`RRcpZ+Fw;U(Zutl(K8wltBs0osoeMO%@t*wwU9>unUy78^?~c zU6>}a$wtlaHPqP|%82Jl<W`m}k;OX2I(GS{U#bzSD{aH;IRZ<0} zA85oStH8l?&2wneoBF3LpYhMLja;c;a$k{YBq!#$^r~B2B$)=(xMiccSeafXJ`>PB z38h&J7vKok@<&&D@ls_XO1B+bDjZ$GDUawkZ=43t;Drj<-m#fM91$AJU${ zI--MH!~%%#x08S|-zJ0@>r)eo8zKK0z>X*TqX4SB-L zC{GqmFXU9sJr7k={~AaR+*5LqsV0*m>2AK+)g)~Djsq4$Pjc;3tt3SZdEtJsOB`n%+t)IrtafH%ZLYKSum zb9x@{dMnhO{!I(p#r*FJiN#Dg9w*>MGJ8sqkNZ%l`U6JV^^D@4;{8LGM{Yz}6u@Em z6;d?DFa5Z%zT2{p_u^WQzsHP4Y$keftt~7at%wJx*mwiS+carn;xSIRqtNyvEbOWc zAmS(W2dB*`)X5<~0vi4!yNw*$s9GHcx@DrmH|5dDx)o-@TK7hMXl*L%&i{s9ze54N z6NfzT)DKiz_Xa;~&bl|&Qz5izi+R@dw1#Z5c!WN(fbhKXXmn_V_J<0;b@=e4ESaV+ zwMmvqG$a+cX@Z%RE2^}ScX`oKxlp!Q?u(Ti9Zr0TLrAo5PJTtlX=5+Pl$>9>k41y{ z;|1^C8vj;RkiGdVzipo83S|8XrC%6&6$OQQ_Ww) zjN_4n;R?)Hj0?=e@m9kK2ldG(e$;$59YANPTO0-}-arz&hgqx_5SJ2RTf$iqFIyNr zTs8!h{+=l4)e9j>X&+{nZYjh z8&d&2e1UBGj3Rim6>Jc5e?N*`Vdh1WLSwtE!tQgtU+Me8RlqQJC?yWWW{Yb21(+(R zkh{_-w!-kWi5eMl0RuCO0ZIpN4u-iK@WLZ{#oPFvuPZ88qb3Zw7(m-Bu4ji*%Hd)40|%D-Vbf}mqDfNsXzYGaz+ZV292gtfAG79`h$%i z3w8lD)C6|!L?I4yAsulHrEZvz8vJHE8 z903Xo=-W_C<$*U*@q(seF0XY^*?TnN%p(t;Qjx%!?3SJK-&z|q>#N`8_|{9;+gYBb zWb`N$;0&;#3}? zj8iE{q?0H}qK!1n#a680Xxwb4R>k7F3uB6@vQ~b~wM%A}IezX)$H~de)#5^=EAB|6 z79Y4$da`=GD1t8!S5z}EbJfiMmu?=0x$)Rs;ddJ91?nLQTj`QRY^AA6bKEBAxZH8e zamgi)vZ`bZ(D2d=2Q&>Rr7FQ=9#;pK=8;@=xx_w&np9QZDU!m-cJOH%(rf?;`p?Q} z71)%Qh*dBw76}MVXmPy7OM|M@IoJUUHTAvW#9j0nvby!4RQ!TM@Z*~1NfRzHNd@oi zYo4HCbNUAwA6U4R(1uDF(<=I+s{Tne{CEmF8bKqPX${c~#4RB7{!c|R@Y30&8s^&=&(81g=hfcIzT*AGHN{()w`?3E07ZCTW}Gk zrei`6__L~oaD6BY`#<=HR+OwO%4q*X=@HUqD74=Q2!Lnblp`Kjw~T-r-*yRDVH>Rw%E{6x6S4qtg`>8)`I zG_l@~tz}(JO$~bxYAi)Vt{qOLN>+CNWnlwDc4t{dz>zN>BW5XE@wEKGvnv+0A9L*8 z?9ppG4;Z_wd&Ypv3DS2@==0?)-H2sv=Y)5@dOPvwBQ1JPJou+eeCRSRx0+f9RLYHM z#TIH`+povVQYM7Z##5KdyZ<1}rmBj^`Ep;d`vI!LY}SsRx}mNh#Wi%MtUxy9Fi081 z6}6t@IPq+aXT1cWzPZ!c)?e~jfM6StKQJWxr2;$V+A3)bN$c zSFCh^<8prw#UaYFt`_tfYGL6OI7_Q^gW0T;OaHaMeS*rdOjNW)Rb8D-ht8n`0SV`}i1Cg0wVD3{`Pr`|W`=)>qg z2SyxryWV$X{njmQXgli;MdL5PNrNB57JJRYTDklyWjB2$mP-Yym|7t){9maG(MmoG zgBT6RH5KdaJgwy3^lCL=7-kj_$;^vh)gzax!4IdaqyL4jo^po&HF+km zaPTBzJ{qUeaiQSQO9m^`5=2`)?T4yDJwaE}-5NsVU(@3$Q?wkKOo`Ts9Y!GZ-X_ zq39-BMVe-?2^>;jGS)vrxA3iGdS-_k0xjNJewpuqdGH=h#1NS3yL+);!X|tWM3JBc z0h6s80M{X0Sfg!Esg$fWv4}^b=DO)5ksJ&})A>rduzc3-8kLogStl)BB!(ni`(ZwL`&UE~6D`1?Cde`WTi zLvZ#e%rgFmlo3{W{3pS6GY*^__sc3)FFEA3H$zSpNBl5c{OOY&_GU#At3zSwuVN+2 zw_KLvPL#$|p(rOtSfHFuKi>bxH2u-(^ZE^toYbY3`}D{{F~lL5RN^^4zMEJI3rnG% zRTivGf@HDY)Cx8@Xm2rXw_#zu|0432V&hFLjyEpiWr`AOo}lnoW4yA7KgV?Uo4u0Xfdc(Pd zakE>jwWmUikwNc#qM~YYX@R8Ar7e^&o=bV7pB*iAD5Gf?fV=!Pid#se#A5!pya?X{ ztZEtnFEr{jkK0Nv|bzU)B3LlCo?;51D(PqQ04GlIl z*h?+ni2Y)C#!FsK8kL!OEI0E)-oi8`^D>pcju~<|9aA#1)l$hD zc*(r`%`_>sgQ9|px^*-y$?#6z7!45>alM47AcGem1YBTYmt|+>{XO4V*quSor#}6` zXWE^edB5-Fd7t-rm&~Zl3M(`dMh~MR{aIU=qz>J=+7vYLgLanQu~jVF57cq6CkInY zPO*~clMUd24|p@k8dGCyteQCjTE|h41(7p{`(mgw$H~6@Dx&Q|#Xs4vdIpKdY3h^$ zA4ZHHFHu${VMiro&Q>f`txsH<{uyuU*c+T2>Sm;brZ{yt6aQp(km6D>mnSX*T-bvs zo=gJ<`(4MY78ZRnh!88YUVByFXwz<|T86dHxr|YxoF-0*U1!9=H74>o(DBH2+k%Msmm})d&u;T?m5XYkN-gcijaIVx zAeMMf20N%0ju%uci|r0r8By0Mvo6Xqiu|f`RV0V2gi6(<16#C9i}~zBG$3o7`0%Sj zH8t6*4XA$YYBp{R_YZkGd>a49eOl1~fKpJ3jeQmZpfiWl&kCC5h0GS!K2eMW>F%m%n1)w>9oK$DGFVTmTiyDtn=0eFtAMDa-c8z!* zUTexmJL|_HOu-6mbED1RmL-T?(+J&zEv!U>55t-`W(}?F1$8U6^34c1-k^On(n4vg zJTyby!PrHKcWCByO5fQP^zPh3Vs`p$Xo=MH2&avM8q}4L^&7vT$}UVKyc|H*cWa&Q zLijyi#9Z(nv$Cnm8$YltI%BHPlO8Wvkh z!zCJ3|Km_8Bf*{cj)q_HkwKI~tpOydCJ_0&8SY)`ubA`E1iacyGskFcu24&6z3EHc z_YQZN;Os#-rSdnwA}fl8Af>&?-?`fN0AFCQOB9Ysm!9RGKyDC-9RIm zS5uXrRo;ADKT2u5_o-PP?|b{HlaC|e?WCJ)~A}iI$28Hksr9J?aqK@ zuREu9S<-a=)zeZ?pVcofc(vfW)QthpZr}Fdg_jrX`})7(PjqaxQqA62?iRPN>l3_1 zHoeR)Tzd6R^~{o+sr#n38JakD%S`$AKMtjDnbf6Ac7=MVyY%s~%d|B5=$G+ZKT1|B zf{(9$Uiyvt&$4c<{;s@hmwzfNt2^#`?!%RtguzYs9X4@9nG&^J5@|_y2XD{c=f`5d zE7~di-6+{0kFOFg%V9x_Fhd#vK`)yFtI;|u$5c5BCCUsns)<3FLtq~&pcvh^y~Id8FM#vKH#z8mXJz{QLvzSstuol0A!_g+ zIdYnlWn%|XjE&A8q@VI|)QmC`{J!qn&6^zJ2N>%gzd*g~7X0sBqXQ*!6bP%!jfxnq zl>4k01f$pKt+Um#^McF&pL;XKmuU1%b=i{-KcUwElq~!92!uZh@jS%>IjY#nkiQt! zK??m7=of6n;~ElP5}vsvZJ5~nU)gdNqc&quA{xa@>`}LI5~r1(*V{eupyH zj}}57sgXfm#3GcaNe;Qq6?JZb(0qhlnpU&U71`(BHJ?gBLGw$m(T2rJ*cSSs{>uoK zt#35Q-AefPlG~goH*HBiu??F~Y~yOq9-`mn0p)?a;(`i=9j2PSO5l%O@5kHey^Aca zY_^rnACcSi!iRnSv*3l_lhqxwFE8K1@; zjytlY%^}Fwu0v&pZZ$t#W1FD10gPCOqdkCYgR0Cg$gHo^@x?u=Jagl#x>BkE=&4cy z9coxP=!^#;yqMVt4qY2(yH%sMNe@<%`s$gtG*S-C&7r9m*_E# z$k)@cZ8Vk(C3q%;X92{tv+T2|QmX;EWdd?*I7WHA0+8EXH?k=Y`0f??WqGDqgP^B+~pzAJJ^$MEXh`-QlyM%_MJ+9~74LfGNFX;9Tr16ER_4$Ufib5I|yi z@t6uh6%MDB$$|Y!e9Rd}X18oRt2XT*T1W|U7F%iCVt2YDE@Rvt>Kyr1T($Wf75K1+ z8l$4Tz&!D#UZt#0Br6v)I4T_ZRh#4VeP`d~GV#J_LkW8lnDYVcGWZ{^T=00b-#(Wa zgzD4YTZOvkqz1<=)V+z5_IIZ3<7GKooie-ew-7lIPi!Nli;}e@&uRLx?G_r_y0gpN zyjp7Nl9qql+En=dKl-fRcw3sj!fX|1eb6{?#qZ6ZI*6YxP|~|@Gv=m~Bz7>%&Ti11 z23o@LxbBB9M9?;8AUT??rm1m=+BCOF%#;In$br6J;^Z?=-yEdJKt(9U4=>l!jJK*I zds47l$leUFt`1hs1vV_coS@OR=_;&@E-^ z-2N0NTbfR*3Oq~7mugc^WUK{ib7^8Bdks2Yc-Jn`lUoFinoOV$B>hc$D3~ipMq#$nClyVu-(!=>JPm^MK7(P9&Ml5t5@8>=i?ZU((l);w zbxFgr61UkQPHT*GVm_ZB@8;mlX3w39$R!eA1ZZ}VCgsu{){f^Axqd*B9EIXL$#kg> z4TkaFpc=GuOdkw)OZY@NvZLPfO=@&-5FNWG?B1X6veeEm2Cv%mK-cTGl2c~_2Q$PAb;^_gxu&@gogvQW12rWQ2uJa!j$d8`w{P~4_XOfK5*lU zKyejmGVt94l-5Y|d!~&><|_P27Qmj_Xlm~A7^akoxop!0L*w~|MuNJ^JD>cGd$`CA zDbj5drZ_}j70)|;3DtDWCb(5I#@AwI#FJPHJM5?UfFu z{_y??&T_JVAK%Z#+FZYHUc+TvPT{$DQ)~pr*@|fc zFebcc3;*31D&{PxQdDaL*Ng=?Rk&hrj|LMKswh`myHv9dn9~4N42rE)*xTEdEOu4x zZFimWKUzmKmud(?Y&DRgsk%?MQFlC51r^KVIAt5{00jNrz#BC3$~68B?Sc&*u!UsK z=1r8hcPgwOw2dN{=lB${P7TDS1d-Gv1J`Zz724D4tDdL^IKMolx^7me&&i$V5~!xK zH>hMR&nXs~7Qu~-T)(!KmBJ|iZ5t;Swrpr-7hddDS|0n>xG!R=*DgExbK00DoGIUG z*~$Ml_+gx1bqa3;+c4BZ`@1$oq$_ob;rld!Av}0-os0con8W9UhpZ6ZSuaH8kux~9 zhQ+DobYj`sY-L>;%SWTkhv)zwAe)S)->#;JupYrT^zc>L2BNRGkkKryoZ=N>;tSWQ z!|i^=%1I-RPN1Mr6n29XDrho=<;juWI$4{&Qshv8{&cyQ3bOp6b99X7oibaXO5D@3 zT66K(W`7#0Ax{!+8H|C?GTlsH+}F->*)Si5(HN~#a>CgQ=~&nIg&Jg>+123FcU_iP zKp{C~!HNiE?%gW{2rB3>4ec4^Q)?_Z(V1!JdFo@ZBW|Uf)CC?(h0y-&Zv>?)(}%H~ zEWa3>7c`!A4@%?5L24*}FSUWR)Q{PwFB>^Uo>%&33qi~3EYk?1@Z zqegD^o93cqit2rZTCcW{cg7bE6*ImmiX}5`F^$ zT-$N?BFVYd^t@7)>B^$37P_6CV*ZDkMCEBM+O+Bx@%$_Q*tO2o|6@#ftWHV&>x(~T z%xwQk@+VP`yVtzGm3`gev*z#yH|Z+K3h=ChR^8gw#=+h|%-DK?3xBQgKEB$5dCm{i z9WTVeIL06b6V}GSMD^NB<+O!=;^^DZy2G@rrTy7GwUp<^+=2a~S04Z*Rf)V($gQL| zIEM}TSSr(|(o3k|+#aYTyswHqYUEH*&Am^JgB^6=O7O_nTB19m0~nA4>_X$WW5c>9 z>;*gEVvm=q_3H& z4W{!9^E!Z}tH(4d08Dx%HWT7bjjT3wbU z#8z{qjM^RzKn_ThxxtqZ<5%EFLWPdzy_n?F>g*NDWr?O4VTf$*TG1r7W7$ym=a4gM zWR`*!c_HhlI@$17sOI1k4st@&47Xw%T{0Ne&Q(vfWBQv; z5X1Y#hj^Wo$FE*>Nj;Ipd*co_O;L4;@4P`txNq(>NN1ifDZ7|$m=2c(4gK2J-a(t4 z^!ErmwIP8IY=$_P9f`wjt{DU7v0l7I`+qF--3h*PJ+7X69quyW6dUd+u>y@R)6)eQ zLnB^GcOp~zL41$Tb@8*u7ITWT$rF%?gA&&Lisha2r0-(YAyze5!@$tH*Wh z4tIh7W~B`U z${8LW{rZ555wjeLVd0iJbDzQVtCp2ce;kzQY#XzFs!^u#yjcJUIjAfRDdz?PhR_jd z`3*Y4OY&C~aWkc9=IwQ|Jeb2Pz%b#DAM&13rE10-eYC-y++`AF`k@m>Ztc9i$B#e*;3Vd7*$g3 zA$ce>JzC8WB6JLdb)6OI4W6^w=tm7BubW;v-st*k^Q%l++`oM{nfC0Cl_mc>P&u|+ zKM?E_dcDzNwOmSrE0%2+lWRggpd!dkSKSWmNdD@~5*m`a{uKVXJ>&dd2fLw$BDels zQJp<_<3P)^&^QRtP2JXp$71YSG^C^%l;{$)^0#)7O!J({1Y;6VV0$BEUEKuce*}7d z`lAX@yOKY7WZ(bWb0V_m>1gU6_a%_OM{!19HLcbDh#qcz4;BOM6(IPeK{+nol7zUP z&Sl^}lF7-ZRxO6YsmH(7C^Y(YVNgo}&Qs7mh7zA^U~WZ;58)hq2i0QH=vlJFcm{ z@i;4mbvE9d<~?~z@_$@cw4bk8ibX&#JhD%dT|f#YeJ4lDaeu2FtIKhV)5rvV z&;^&tO@{%|Nk6eLyI8CW`Wb)oVQN{6EZH?=NfTTs6OTFthd8wk4mpA56|*H%5jv@P zY9Pv^x#ePQdDO4AJYpelP&^N0Ufd{)saZQ@^Eo4U*}Z~=oTs&X^r4P=2N*2XB_MW3 z%aSK{hwZeX>%QGEZT6EJs}9<u)Nl}g~-K5Vla zeMYNR^oQI6Z(zWj(V=M5!3(2eSSS&Q=bFh}kD=-QVzBdP-)J{3o>EaS>Y+CDu3x7k z&*zdggu|{8L&W9na5X;C-2I90oIh7j_Gw8arPjtOZUR_ktO~g|gs0ZgRh_RtfNBV@7Hu?dCFcB2o7|mv9y_XyKGVgXLZ7V8 zSJxKvo+rflD+uiMC@vgu+Aj-uhPpoMvCI1#uNj0K$0!L@OW)(WP5z5L6U&=p%w+o0 zZ$43%UKSdp8%j8otM~sv@l7EdXKqo$Zd}^}MQkmvoZWaY@ONR$Co8bd z1GRg*_*pYJzI2Z|SKEotgvOigP8ZwqO!Xo%y`C7kkD^n|j$35x#>@#Fn z(5L%Ju^?6FyhH;ErLUg(J4=wo-!xW-rIJ@1bgYu5s1Q#gUCAj0U}P+t3(g@Mz2Yg8 zf|^lcKH+tbe8>v!P|*SP%j5Pr3QKn?m7?% zq?`+N^nef*V>8or)u<1A%7CQ9RW9kkeeAC{2~rJjNDb@RA)5oyVwQ=Z3B`cADF2pP zcpvN(!JA#weRCmuj{^s_C@J8lAYJLq9}y(Q;*c=tlF=hwdj$L4P{fset9+P+6V;$5 zGRTfmw4Au2zR3m}rf4;jg_OVr^mKpN18&hoE-L4A(OEfBclZ$7N`bzZfxh4-pMEnN zaI|;D2FiBu2VPOl6}q(?Qb2HxIH%#>e1IpW_dwF|Mf0{Nay8v zVTz!*Ov!`giT9Y>w5bc!ua9*7R1UarUea~rOV|Fm$u}lJo9wp3MTV*#j7(pir9IsW zVAIjd0gEdf7UwlnEEki>)iTysav5}jdi02=_i7jqNyEg{HyxKJcL72vEbJ5GkX-#HO{e# z3sQvj5FhlJ@H2ZSKe$G03vF#yRg{nAQk6qYP9^f!grF+Z6}JEm&nQK>FnYdg%$cw9?lzIE0Mz(4)JPG%IR)FcM~q~enx z6nK3u@>&BFssR)P85~1DYAyW&xe+hSrS8q8EZV9dTqzR#sI&Cs@N@ICGRTL0Sgm`QPMyC z95S2JzBzX!*ic%xVIbraC2Ut5DD+eEc@VE%ZIQp-v)W=2S=zr?M#6Do@#Tc+#Jj>$ zqStWbr@=Rx|1dV5TDjPbeg-vQ?}c7t99zTs5+oO*byQ^SeL-!RyHVcpsAr5tZp+Df z6B=L!a%>d%<)g7tc8gN$wK}OrgYJ2gR)^dta%y1WM>b zh&+ks=wmx+9m2YI38-$OrgNb~MuS!%QscF+>}-JCJfnD?>b}`hHSvc>cb?cOqo$A> z(~mc3&!_cWY5FRPdR7MyyHA6+;owBD<-=VxO~V0>`1G2V&2PvTYxd|*I`>|SKyk%2 z|D|}@^$^kd3&1VuAyl}fc)K{}B3*mraP-}t%TE5)seDlTpt**7uaM6idBC3%RJL8(l&kzN)9(r=uLm#O>)` zOISJ0yGq4hW18fVfW5RsW=3HU4V&arP5eo?$Tejh&0WfAqX3rX3^Po=lu|be1P{Rr z*LNXlCnPBJxt>-PVMd^S`SibnagMGH+WKKY)X++LMBP-(;f2r++zqESx>1FFD-WIm zLG?>Y{Pdh*U5vpof&=-#U?zIfkTfG5y-gFdJ*{2q4({pd@X(|asLrFB)S+m+UkdsX z5c-xJCNvu3-m+$SNHc~QPTRW209E_tSgB1CA7Djv;$x~APo3l<>GQZ1uGX-nl>peY zV{5|lPLXs>e(4)=&W$_CE!sp*sJ^yyRdn3#;U{QwK)Iy;+sVds;|oYM6nA#%mglFvnSF$TW{_roKfkLC+Nm96&D^Ag8yg zXZNM<3#dEzQa&igLzGL1m9aogmQv|IFWeSPwap?<)2ka4_251oP7s(QsDf;~3$L+1 zWpjnNQbsE5(U}4ub{^!#V4&h_Dch4zerjV|=qDY@luV#8y@4GOJC$hgp}-gzeTaS< zZl#-F^9WQ2Si!YjQN-WQadiwa+#$Y>ToMzYn1j`}8PrK6B~}Qzgq|t>%NxBINZe^- z!O2`C!TU)dnyk&G-rVovG7n2m088$$Knb7TcbiSj-U~U^gOqVxNu_>V)dZg`(w?`m^sMe@lPd0~v36h*KcXEpNmB2y z_zs>L=-KuSKDCQoTpUNN1)98Uxd{9X1SuU^PWTwW(mM5V&RjY!=V8sQ%hKc#3ov5u zz4{+o@rNS3KhGX;w2DuuYC@k^Eq`TimF5l?Z8rA73;z__&;nPZ@Pt`MhHntJb#`A{ zeRqBDw4U8Cr|Mvt*m?*c(&4tufSQvcwCDXII|HrK;KWcu#6V~mL=koquN)1{u^BW% zTVP{I*1%-ax^v+ar_n@O{vjnmC?C8oAZ+>~0&VtdDXRGp;$M=BR$&6=4;qZ-S-Q)L zxVp6huFluW)2a?krF11zy@F>gg+g7RUcd}6F^)yfYT3=&SRaG{T^{py6%ipJab6nc;11 zt=?HY4tZk%mEW##f)A$`FV_)7EbM=x@MQogeX~$J-GqD0cNGFrK|ZJroixF27k~hE z8u_^asVGs{bPAOy6R)f*SwcA1-(#?Lx&>)P9;)+bB1j0nS2wzr#$?&XSBnLEo9$4J zK&!~C!Az_CWi@GXL^4f3$Ek)$ny>(a>pIcvzba|;#pZ7g#CP^*r#qeO(c+I2Q{P=P&~YW{@~tpa%+OW`yT-hcTD|DO z-rT@dn^wR2?STLLrTxEC-xv&V&7}xf3YN!)#VS@=jM{OHhJm1U^dg#w!B5N4q^-*3 z7v4}zZg%w-SzwCUNpN3Oi=PJuy?ivRO_-}E9GdrU>DqIadfr|KYp(k zx&_^0d}!*}cZbxZ;eON0*(uem`yOo4m91{JyN8=iMDl3sa=1q7$NTSP ziur|)P$bo@0+zx{6d?(lm~6mPV|uvQ9PRR7c&@p;%<;uwleJ)gUp(&2JZI$ly5GC0 zry?zAI&L#|CJT*W#J!nnn|H``CLv?&$=}v}K&fKxwg9)ViY?A_iy{3NtLEjKYr-1S zu4>lG9l0U?ylS&7bANN}`x&;RDxq0h8r$OI4gddcrOIN*I-PvxHT8vX^`-g6( zD%g=K#bRr9&T$%W@0$6+C+C5-r3?a+~gzYse$J*=+%%Ddr=Jdr(?YT{WysW&`P1PfRWO-U41*IlD33 z%`l-Nb_%l7b_%?eGUL!DMOystVvH5Z=doJf2t&t71wu>>px-2eI_yh<>y#CI~<%XNUu-|oxf0}~#m#_jF z)aj5K3c|=;RZ=b3Jjhk=-ge89MFb?Z?Uj9AiPs`Zn03&>_`o<;72=a3l(yDe8bb;RW zSSlu^-nxQyYmwHg3fe$``xG%IkEBav>iqBR2%*v&nUtR7Urk9)if&C&ok29g?nzUs zhIL|@dlG)@UUvmnd*V*P4`G?0-RfTg{DETHjCZP7xId6WDBRA@Ihk%dI-CX+qp<2d zT?HwWJE5QATi`MpU&(I#tKK`k!zrO7M_`FgOtuShNpb(V%}n^=_Ml9er6VHh4YrV} z(is=SOj&P|Me*hZI`%EfA3IJGyKipgdtDS^q(a zo6(S01J3OSDYJady&56eQTk~%@AHh$;fuASyJ#mFAG`PrqWoN}c{GQ(+57uxNX%p8 z9~R&I#iskNQEc-cdaC{?10(N3Y&n+v1&s7c)WvOoT!uig3+cY;H+ zZJqSOMv8+~4)-e+>N!TY%*JM7KZWnZrvb|x;D^88qOcnAC3_+LC(J$m_{}X1ju-F9 zWNyd6TXbUyHZN!1lWj+vVT`M}8d^?eK|+w!OwL)OJ2+B#@UG&(`qapCpF^Fd%lV8Q^uIOP|n3n08TWVXv@ ze#902dg)dr=+;2o@92N3R@~z+2!@qfF#KuZv4Kk#KV2;(gJotid|<6FgzQ*IL?JaL z^UNrdiZlyT=DzoHlk5VS5JfRw-N_EHC?P`@S0RqRN+u;#nd*y1 z$Zhh0Jz0FNaI=f1R04uF7>5PRPbu;}Y-;D`;au})jd0Gvo}I~Qd!6)FgbUxwek5PDj+}#Km#fJ#keH z9XslR{(4mAOPXR@JxCFo!FxVrlE+|{l|F7c zDMw8lN+wT?+vInX{hLpTHXncYsgqqOEJZfI@B|=q-;bO27ZtQaOEa(wUVnGEOjVZ3 zF;TR4*$!;0EuDXq>}BI^v|`9iw;Gv^I5Mw{7N$qOB=4CtqPaM(=+50&w|wii&F!`5 z9XVQRow6#gr_k{D_;ZKGTYfvVL`}%0fsF@K>m!TR>>x)VM1;S1S{p9vJCL8b+kzZL z{}vFH6CTG^qwS`vVy!crWH)aCaBk^T?awcZt8rHys{6##6Wi&% z`{t+dIb|j_Sdp!F#QmF=s6mfGbK}TX^kC)|J*V2&!UWie3_1k0ry88cx-W*|O}*=~ zUOIdkF0+<49R#hy9p~ByIu01+=?dwjBmz-*Fo!G`6)dly~E>8(KgeGL%ll@SDFI3woL-~Q# zzI%n0^}!Cx#EpwoCu_M#?T*-*HV;$Crx9DlBN$gpuQc1o+t~X2+hxH@&|P`xDLJZB zd)cW5`isA|==RG}E3V;rXjTw@EzsW@!9`UmL&9Gk&4BD&Q}PU13< zJ#^Ox>#gIm8(&)CvZzmd#Vt_F&ynjQ_$p68aUmhzWp=Qs`|}8~qrtrwVXwU#989G@ zMMGR~jlqLhG*1nox{%%9KTgF-^4_HlunRfWNaz7PI#92pgxlB>ct_ENvJ0_l3wX#9Gmbd+e%u0ocyh4wU8X*g|XmC@>DDnue^ z7ir9CJ1e4?oWW!p@66}q>`%2ye1##C(4z2V{0zGQ1&6w1P;d(y^ufvlh$E*RP7C2$ z%tw>b?`8!orTEJzhwN*{}i&Im6;Hy`~igLXG&#&&Eq(ZJyh;Yq#4Md7~T+xjWyBgbgjBq?sIGHw58p zCG<=a@9WmC%EF%}Ltne#tOd{Gbg$;M zviZ<-%y3P(#dEwto?6)g^>3)28ZIn!utj7$iN9Wxt&K0Kc-FV>1~-cgEwqB)#(iuA{zz``ne zHb3$Y1;KYFDYKi2GeXOQZdWy-ZIjAO&&eis;h8g*$6gK?17KpeA`GOgdk!4*V+g!d z8+iF?^*szNq1x=y?zoavKG%yaEHbFTw|didgH6e*aGLKN=T%ib3taW1>VKRP443y% z1LG%CVm9dHXG>+^Uct^@A5Wh|b1k)@I0`w6A$M_*jAp?W8V@d_tB{n;NviY?#%(rI zw3^t>P)G8r1SB^Epm3EDXGf~I<@f95te%4SE1WCX1@R(2AXBw=g91daY8@nS0DIbK zCsgt~*;Qd5T^)we;*D6fW>L)b3O2D@5v}A^xJ3)dF3U?7wP2$EG~}<(AkkEq0l|sl z2#$>Mc27Dc*md9@)nKBP9cmB%Xc072^Wc8^u| zvxvAHIq>UXe=Z zl0GG5E?%LGUXtS$Q#P4s4_!KABS=%9P9h2GI`bu$^q|F(oDMzb`dQ{TEptYO-Ex)g z&dff3|E_9_$&EQ}8As;0MoyC7|tVX{vK;ibezXH@BVEK|GZP^9)>nzx}9 zjl2jt2a!MfPT5^r&qrA^iM$`ZpvS4WIoKuhDMD&&| z8B~Q@4zaDS98aUJim-~(C*7o}4w^h`014G}YHqDq~<>7Jx9%9WWEPAS*u&JXky<|dgm>Q`(NhD7YOKn9M?QF zA8J~|p$zjT3`-t^tLJsKZ2AX{@Bt%fG+7a%D89%gPET=JViqaIu0+>>uQFYx2Yz41 z{K-dv-@ZPtF;>du|AjvArMieCsG*o3L?vUV)EyM2NSCR#Ct^R}pyb8LRi@l+yEr@Z z1hqR~Q=mwVssg`@B#Jz5{%ZWpZ*F7O>di&fMTI$S*I%@?*zu(K^p}TPW=kX=`1qwt z+5g3ZZd8Hy6=?;+S*cqbRFXUp3wYouq;s;_^uMB`TX3RQ5aU&A0d-kILwzqt0{}&e z=ZeidK*HK;71~yd+-Trz`@JtQ0U8E_ys8Ch+UCE_0YlLQ)}UHObGNg z!tu5EVqn5#3S5cd#&_oq6hcabkBh3f9Mgj?o;30l{g`jaVmT2gtaNE1_t^$-YG;Ft zSip5Ri=eD>*#vBI|2@hqGRb264lW<_^dH$*U5f_B+c5Vlv``aY*FWO}KhYSQ-*70j zQ55#8dpxSJIxPO!S3H$mrKOU0kV^LCsbtifO82kn07P|>OolEgMwX;10$f=NTv<*s zWvBQs?hB|VnAbOOh>d4UDD}`~@LFF!%~R)&!6cCW1&~}wpEx0F7>e2j#?0N#l@nvz zi-ViX=9X3L^G&p_?sRbwnt_3magefj(8;-o@gwmI|CG#04(8NA#>+BEHnO9%GDJgx z13M%5m*_$|!mC&#cB_|vCdgLV5Yp+%LN5MkylJh3QA0!YeHo4qVuD4V)&Px3$Ki4^ zof&E#GS%&KXP&l<2vE)t)i)~^0|<-ig+pXIg!@>A20f?Q#dMzT>9fUbZ$pOTIuGV8 z*?gV-ex+EGVGQv=+skN3x?A)*RcBkMt5l0q{5ik?C{nX2?E2Nv%#p9wSe&e{uMTji zmK#8~5^r|lxoZX8#{i`i;z4Zq(qzDW5t0-t=qm{~D+MyZ`_I From 25c87bc6bb282fef6ff2f38b9fe0d0856e5045ce Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Wed, 17 Mar 2021 18:53:40 +0000 Subject: [PATCH 21/25] goto-instrument-wmm tests: minimisation requires glpk Tag all *_OPT tests "glpk" and exclude them from test runs by default as we don't currently build with glpk by default. --- regression/goto-instrument-wmm-core/CMakeLists.txt | 2 +- regression/goto-instrument-wmm-core/Makefile | 12 ++++++------ .../ppc_aclwdrr000_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr000_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr000_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr000_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr001_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr001_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr001_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr001_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr002_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr002_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr002_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr002_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr003_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr003_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr003_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr003_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr004_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr004_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr004_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr004_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr005_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr005_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr005_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr005_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr006_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr006_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr006_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr006_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr007_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr007_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr007_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr007_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr008_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr008_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr008_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr008_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr009_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr009_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr009_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr009_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr010_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr010_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr010_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr010_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr011_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr011_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr011_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr011_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr012_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr012_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr012_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr012_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr013_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr013_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr013_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr013_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr014_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr014_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr014_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr014_TSO_OPT/test.desc | 2 +- .../ppc_aclwdrr015_POWER_OPT/test.desc | 2 +- .../ppc_aclwdrr015_PSO_OPT/test.desc | 2 +- .../ppc_aclwdrr015_RMO_OPT/test.desc | 2 +- .../ppc_aclwdrr015_TSO_OPT/test.desc | 2 +- .../ppc_aclwsrr000_POWER_OPT/test.desc | 2 +- .../ppc_aclwsrr000_PSO_OPT/test.desc | 2 +- .../ppc_aclwsrr000_RMO_OPT/test.desc | 2 +- .../ppc_aclwsrr000_TSO_OPT/test.desc | 2 +- .../ppc_aclwsrr001_POWER_OPT/test.desc | 2 +- .../ppc_aclwsrr001_PSO_OPT/test.desc | 2 +- .../ppc_aclwsrr001_RMO_OPT/test.desc | 2 +- .../ppc_aclwsrr001_TSO_OPT/test.desc | 2 +- .../ppc_aclwsrr002_POWER_OPT/test.desc | 2 +- .../ppc_aclwsrr002_PSO_OPT/test.desc | 2 +- .../ppc_aclwsrr002_RMO_OPT/test.desc | 2 +- .../ppc_aclwsrr002_TSO_OPT/test.desc | 2 +- .../ppc_bclwdww000_POWER_OPT/test.desc | 2 +- .../ppc_bclwdww000_PSO_OPT/test.desc | 2 +- .../ppc_bclwdww000_RMO_OPT/test.desc | 2 +- .../ppc_bclwdww000_TSO_OPT/test.desc | 2 +- .../ppc_bclwdww001_POWER_OPT/test.desc | 2 +- .../ppc_bclwdww001_PSO_OPT/test.desc | 2 +- .../ppc_bclwdww001_RMO_OPT/test.desc | 2 +- .../ppc_bclwdww001_TSO_OPT/test.desc | 2 +- .../ppc_bclwdww002_POWER_OPT/test.desc | 2 +- .../ppc_bclwdww002_PSO_OPT/test.desc | 2 +- .../ppc_bclwdww002_RMO_OPT/test.desc | 2 +- .../ppc_bclwdww002_TSO_OPT/test.desc | 2 +- .../ppc_bclwdww003_POWER_OPT/test.desc | 2 +- .../ppc_bclwdww003_PSO_OPT/test.desc | 2 +- .../ppc_bclwdww003_RMO_OPT/test.desc | 2 +- .../ppc_bclwdww003_TSO_OPT/test.desc | 2 +- .../ppc_bclwdww004_POWER_OPT/test.desc | 2 +- .../ppc_bclwdww004_PSO_OPT/test.desc | 2 +- .../ppc_bclwdww004_RMO_OPT/test.desc | 2 +- .../ppc_bclwdww004_TSO_OPT/test.desc | 2 +- .../ppc_bclwdww005_POWER_OPT/test.desc | 2 +- .../ppc_bclwdww005_PSO_OPT/test.desc | 2 +- .../ppc_bclwdww005_RMO_OPT/test.desc | 2 +- .../ppc_bclwdww005_TSO_OPT/test.desc | 2 +- .../ppc_bclwdww006_POWER_OPT/test.desc | 2 +- .../ppc_bclwdww006_PSO_OPT/test.desc | 2 +- .../ppc_bclwdww006_RMO_OPT/test.desc | 2 +- .../ppc_bclwdww006_TSO_OPT/test.desc | 2 +- .../ppc_bclwdww007_POWER_OPT/test.desc | 2 +- .../ppc_bclwdww007_PSO_OPT/test.desc | 2 +- .../ppc_bclwdww007_RMO_OPT/test.desc | 2 +- .../ppc_bclwdww007_TSO_OPT/test.desc | 2 +- .../ppc_bclwdww009_POWER_OPT/test.desc | 2 +- .../ppc_bclwdww009_PSO_OPT/test.desc | 2 +- .../ppc_bclwdww009_RMO_OPT/test.desc | 2 +- .../ppc_bclwdww009_TSO_OPT/test.desc | 2 +- .../ppc_bclwsww000_POWER_OPT/test.desc | 2 +- .../ppc_bclwsww000_PSO_OPT/test.desc | 2 +- .../ppc_bclwsww000_RMO_OPT/test.desc | 2 +- .../ppc_bclwsww000_TSO_OPT/test.desc | 2 +- .../ppc_iriw+addrs_POWER_OPT/test.desc | 2 +- .../ppc_iriw+addrs_PSO_OPT/test.desc | 2 +- .../ppc_iriw+addrs_RMO_OPT/test.desc | 2 +- .../ppc_iriw+addrs_TSO_OPT/test.desc | 2 +- .../ppc_iriw+lwsync+addr_POWER_OPT/test.desc | 2 +- .../ppc_iriw+lwsync+addr_PSO_OPT/test.desc | 2 +- .../ppc_iriw+lwsync+addr_RMO_OPT/test.desc | 2 +- .../ppc_iriw+lwsync+addr_TSO_OPT/test.desc | 2 +- .../ppc_iriw+lwsyncs_POWER_OPT/test.desc | 2 +- .../ppc_iriw+lwsyncs_PSO_OPT/test.desc | 2 +- .../ppc_iriw+lwsyncs_RMO_OPT/test.desc | 2 +- .../ppc_iriw+lwsyncs_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr000_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr000_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr000_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr000_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr001_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr001_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr001_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr001_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr002_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr002_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr002_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr002_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr003_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr003_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr003_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr003_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr004_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr004_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr004_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr004_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr005_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr005_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr005_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr005_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr006_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr006_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr006_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr006_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr007_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr007_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr007_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr007_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr008_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr008_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr008_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr008_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr009_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr009_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr009_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr009_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr010_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr010_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr010_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr010_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr011_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr011_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr011_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr011_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr012_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr012_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr012_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr012_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr013_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr013_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr013_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr013_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr014_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr014_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr014_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr014_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr015_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr015_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr015_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr015_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr016_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr016_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr016_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr016_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr017_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr017_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr017_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr017_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr018_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr018_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr018_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr018_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr019_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr019_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr019_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr019_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr020_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr020_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr020_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr020_TSO_OPT/test.desc | 2 +- .../ppc_lwdwr021_POWER_OPT/test.desc | 2 +- .../ppc_lwdwr021_PSO_OPT/test.desc | 2 +- .../ppc_lwdwr021_RMO_OPT/test.desc | 2 +- .../ppc_lwdwr021_TSO_OPT/test.desc | 2 +- .../ppc_lwswr000_POWER_OPT/test.desc | 2 +- .../ppc_lwswr000_PSO_OPT/test.desc | 2 +- .../ppc_lwswr000_RMO_OPT/test.desc | 2 +- .../ppc_lwswr000_TSO_OPT/test.desc | 2 +- .../ppc_lwswr001_POWER_OPT/test.desc | 2 +- .../ppc_lwswr001_PSO_OPT/test.desc | 2 +- .../ppc_lwswr001_RMO_OPT/test.desc | 2 +- .../ppc_lwswr001_TSO_OPT/test.desc | 2 +- .../ppc_lwswr002_POWER_OPT/test.desc | 2 +- .../ppc_lwswr002_PSO_OPT/test.desc | 2 +- .../ppc_lwswr002_RMO_OPT/test.desc | 2 +- .../ppc_lwswr002_TSO_OPT/test.desc | 2 +- .../ppc_lwswr003_POWER_OPT/test.desc | 2 +- .../ppc_lwswr003_PSO_OPT/test.desc | 2 +- .../ppc_lwswr003_RMO_OPT/test.desc | 2 +- .../ppc_lwswr003_TSO_OPT/test.desc | 2 +- .../ppc_mix000_PSO_OPT/test.desc | 2 +- .../ppc_mix000_RMO_OPT/test.desc | 2 +- .../ppc_mix000_TSO_OPT/test.desc | 2 +- .../ppc_podrr000_POWER_OPT/test.desc | 2 +- .../ppc_podrr000_PSO_OPT/test.desc | 2 +- .../ppc_podrr000_RMO_OPT/test.desc | 2 +- .../ppc_podrr000_TSO_OPT/test.desc | 2 +- .../ppc_podrr001_POWER_OPT/test.desc | 2 +- .../ppc_podrr001_PSO_OPT/test.desc | 2 +- .../ppc_podrr001_RMO_OPT/test.desc | 2 +- .../ppc_podrr001_TSO_OPT/test.desc | 2 +- .../ppc_podrr002_POWER_OPT/test.desc | 2 +- .../ppc_podrr002_PSO_OPT/test.desc | 2 +- .../ppc_podrr002_RMO_OPT/test.desc | 2 +- .../ppc_podrr002_TSO_OPT/test.desc | 2 +- .../ppc_podrr003_POWER_OPT/test.desc | 2 +- .../ppc_podrr003_PSO_OPT/test.desc | 2 +- .../ppc_podrr003_RMO_OPT/test.desc | 2 +- .../ppc_podrr003_TSO_OPT/test.desc | 2 +- .../ppc_podrw000_POWER_OPT/test.desc | 2 +- .../ppc_podrw000_PSO_OPT/test.desc | 2 +- .../ppc_podrw000_RMO_OPT/test.desc | 2 +- .../ppc_podrw000_TSO_OPT/test.desc | 2 +- .../ppc_podrw001_POWER_OPT/test.desc | 2 +- .../ppc_podrw001_PSO_OPT/test.desc | 2 +- .../ppc_podrw001_RMO_OPT/test.desc | 2 +- .../ppc_podrw001_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr000_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr000_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr000_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr000_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr001_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr001_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr001_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr001_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr002_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr002_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr002_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr002_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr003_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr003_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr003_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr003_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr004_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr004_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr004_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr004_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr005_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr005_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr005_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr005_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr006_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr006_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr006_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr006_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr007_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr007_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr007_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr007_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr008_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr008_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr008_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr008_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr009_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr009_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr009_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr009_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr010_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr010_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr010_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr010_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr011_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr011_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr011_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr011_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr012_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr012_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr012_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr012_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr013_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr013_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr013_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr013_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr014_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr014_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr014_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr014_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr015_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr015_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr015_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr015_TSO_OPT/test.desc | 2 +- .../ppc_podwr000_POWER_OPT/test.desc | 2 +- .../ppc_podwr000_PSO_OPT/test.desc | 2 +- .../ppc_podwr000_RMO_OPT/test.desc | 2 +- .../ppc_podwr000_TSO_OPT/test.desc | 2 +- .../ppc_podwr001_POWER_OPT/test.desc | 2 +- .../ppc_podwr001_PSO_OPT/test.desc | 2 +- .../ppc_podwr001_RMO_OPT/test.desc | 2 +- .../ppc_podwr001_TSO_OPT/test.desc | 2 +- .../ppc_podww000_POWER_OPT/test.desc | 2 +- .../ppc_podww000_PSO_OPT/test.desc | 2 +- .../ppc_podww000_RMO_OPT/test.desc | 2 +- .../ppc_podww000_TSO_OPT/test.desc | 2 +- .../ppc_podww001_POWER_OPT/test.desc | 2 +- .../ppc_podww001_PSO_OPT/test.desc | 2 +- .../ppc_podww001_RMO_OPT/test.desc | 2 +- .../ppc_podww001_TSO_OPT/test.desc | 2 +- .../ppc_posrr000_POWER_OPT/test.desc | 2 +- .../ppc_posrr000_PSO_OPT/test.desc | 2 +- .../ppc_posrr000_RMO_OPT/test.desc | 2 +- .../ppc_posrr000_TSO_OPT/test.desc | 2 +- .../ppc_posrr001_POWER_OPT/test.desc | 2 +- .../ppc_posrr001_PSO_OPT/test.desc | 2 +- .../ppc_posrr001_RMO_OPT/test.desc | 2 +- .../ppc_posrr001_TSO_OPT/test.desc | 2 +- .../ppc_posrr002_POWER_OPT/test.desc | 2 +- .../ppc_posrr002_PSO_OPT/test.desc | 2 +- .../ppc_posrr002_RMO_OPT/test.desc | 2 +- .../ppc_posrr002_TSO_OPT/test.desc | 2 +- .../ppc_posrr003_POWER_OPT/test.desc | 2 +- .../ppc_posrr003_PSO_OPT/test.desc | 2 +- .../ppc_posrr003_RMO_OPT/test.desc | 2 +- .../ppc_posrr003_TSO_OPT/test.desc | 2 +- .../ppc_posrr004_POWER_OPT/test.desc | 2 +- .../ppc_posrr004_PSO_OPT/test.desc | 2 +- .../ppc_posrr004_RMO_OPT/test.desc | 2 +- .../ppc_posrr004_TSO_OPT/test.desc | 2 +- .../ppc_rfe000_POWER_OPT/test.desc | 2 +- .../ppc_rfe000_PSO_OPT/test.desc | 2 +- .../ppc_rfe000_RMO_OPT/test.desc | 2 +- .../ppc_rfe000_TSO_OPT/test.desc | 2 +- .../ppc_rfe001_POWER_OPT/test.desc | 2 +- .../ppc_rfe001_PSO_OPT/test.desc | 2 +- .../ppc_rfe001_RMO_OPT/test.desc | 2 +- .../ppc_rfe001_TSO_OPT/test.desc | 2 +- .../ppc_rfe002_POWER_OPT/test.desc | 2 +- .../ppc_rfe002_PSO_OPT/test.desc | 2 +- .../ppc_rfe002_RMO_OPT/test.desc | 2 +- .../ppc_rfe002_TSO_OPT/test.desc | 2 +- .../ppc_rfe003_POWER_OPT/test.desc | 2 +- .../ppc_rfe003_PSO_OPT/test.desc | 2 +- .../ppc_rfe003_RMO_OPT/test.desc | 2 +- .../ppc_rfe003_TSO_OPT/test.desc | 2 +- .../ppc_rfe004_POWER_OPT/test.desc | 2 +- .../ppc_rfe004_PSO_OPT/test.desc | 2 +- .../ppc_rfe004_RMO_OPT/test.desc | 2 +- .../ppc_rfe004_TSO_OPT/test.desc | 2 +- .../ppc_rfe005_POWER_OPT/test.desc | 2 +- .../ppc_rfe005_PSO_OPT/test.desc | 2 +- .../ppc_rfe005_RMO_OPT/test.desc | 2 +- .../ppc_rfe005_TSO_OPT/test.desc | 2 +- .../ppc_rfe006_POWER_OPT/test.desc | 2 +- .../ppc_rfe006_PSO_OPT/test.desc | 2 +- .../ppc_rfe006_RMO_OPT/test.desc | 2 +- .../ppc_rfe006_TSO_OPT/test.desc | 2 +- .../ppc_rfi000_POWER_OPT/test.desc | 2 +- .../ppc_rfi000_PSO_OPT/test.desc | 2 +- .../ppc_rfi000_RMO_OPT/test.desc | 2 +- .../ppc_rfi000_TSO_OPT/test.desc | 2 +- .../ppc_rfi001_POWER_OPT/test.desc | 2 +- .../ppc_rfi001_PSO_OPT/test.desc | 2 +- .../ppc_rfi001_RMO_OPT/test.desc | 2 +- .../ppc_rfi001_TSO_OPT/test.desc | 2 +- .../ppc_rfi002_POWER_OPT/test.desc | 2 +- .../ppc_rfi002_PSO_OPT/test.desc | 2 +- .../ppc_rfi002_RMO_OPT/test.desc | 2 +- .../ppc_rfi002_TSO_OPT/test.desc | 2 +- .../ppc_safe000_POWER_OPT/test.desc | 2 +- .../ppc_safe000_PSO_OPT/test.desc | 2 +- .../ppc_safe000_RMO_OPT/test.desc | 2 +- .../ppc_safe000_TSO_OPT/test.desc | 2 +- .../ppc_safe001_POWER_OPT/test.desc | 2 +- .../ppc_safe001_PSO_OPT/test.desc | 2 +- .../ppc_safe001_RMO_OPT/test.desc | 2 +- .../ppc_safe001_TSO_OPT/test.desc | 2 +- .../ppc_safe002_POWER_OPT/test.desc | 2 +- .../ppc_safe002_PSO_OPT/test.desc | 2 +- .../ppc_safe002_RMO_OPT/test.desc | 2 +- .../ppc_safe002_TSO_OPT/test.desc | 2 +- .../ppc_safe003_POWER_OPT/test.desc | 2 +- .../ppc_safe003_PSO_OPT/test.desc | 2 +- .../ppc_safe003_RMO_OPT/test.desc | 2 +- .../ppc_safe003_TSO_OPT/test.desc | 2 +- .../ppc_safe004_POWER_OPT/test.desc | 2 +- .../ppc_safe004_PSO_OPT/test.desc | 2 +- .../ppc_safe004_RMO_OPT/test.desc | 2 +- .../ppc_safe004_TSO_OPT/test.desc | 2 +- .../ppc_safe005_POWER_OPT/test.desc | 2 +- .../ppc_safe005_PSO_OPT/test.desc | 2 +- .../ppc_safe005_RMO_OPT/test.desc | 2 +- .../ppc_safe005_TSO_OPT/test.desc | 2 +- .../ppc_safe006_POWER_OPT/test.desc | 2 +- .../ppc_safe006_PSO_OPT/test.desc | 2 +- .../ppc_safe006_RMO_OPT/test.desc | 2 +- .../ppc_safe006_TSO_OPT/test.desc | 2 +- .../ppc_safe007_POWER_OPT/test.desc | 2 +- .../ppc_safe007_PSO_OPT/test.desc | 2 +- .../ppc_safe007_RMO_OPT/test.desc | 2 +- .../ppc_safe007_TSO_OPT/test.desc | 2 +- .../ppc_safe008_POWER_OPT/test.desc | 2 +- .../ppc_safe008_PSO_OPT/test.desc | 2 +- .../ppc_safe008_RMO_OPT/test.desc | 2 +- .../ppc_safe008_TSO_OPT/test.desc | 2 +- .../ppc_safe009_POWER_OPT/test.desc | 2 +- .../ppc_safe009_PSO_OPT/test.desc | 2 +- .../ppc_safe009_RMO_OPT/test.desc | 2 +- .../ppc_safe009_TSO_OPT/test.desc | 2 +- .../ppc_safe010_POWER_OPT/test.desc | 2 +- .../ppc_safe010_PSO_OPT/test.desc | 2 +- .../ppc_safe010_RMO_OPT/test.desc | 2 +- .../ppc_safe010_TSO_OPT/test.desc | 2 +- .../ppc_safe011_POWER_OPT/test.desc | 2 +- .../ppc_safe011_PSO_OPT/test.desc | 2 +- .../ppc_safe011_RMO_OPT/test.desc | 2 +- .../ppc_safe011_TSO_OPT/test.desc | 2 +- .../ppc_safe012_POWER_OPT/test.desc | 2 +- .../ppc_safe012_PSO_OPT/test.desc | 2 +- .../ppc_safe012_RMO_OPT/test.desc | 2 +- .../ppc_safe012_TSO_OPT/test.desc | 2 +- .../ppc_safe013_POWER_OPT/test.desc | 2 +- .../ppc_safe013_PSO_OPT/test.desc | 2 +- .../ppc_safe013_RMO_OPT/test.desc | 2 +- .../ppc_safe013_TSO_OPT/test.desc | 2 +- .../ppc_safe014_POWER_OPT/test.desc | 2 +- .../ppc_safe014_PSO_OPT/test.desc | 2 +- .../ppc_safe014_RMO_OPT/test.desc | 2 +- .../ppc_safe014_TSO_OPT/test.desc | 2 +- .../ppc_safe015_POWER_OPT/test.desc | 2 +- .../ppc_safe015_PSO_OPT/test.desc | 2 +- .../ppc_safe015_RMO_OPT/test.desc | 2 +- .../ppc_safe015_TSO_OPT/test.desc | 2 +- .../ppc_safe016_POWER_OPT/test.desc | 2 +- .../ppc_safe016_PSO_OPT/test.desc | 2 +- .../ppc_safe016_RMO_OPT/test.desc | 2 +- .../ppc_safe016_TSO_OPT/test.desc | 2 +- .../ppc_safe017_POWER_OPT/test.desc | 2 +- .../ppc_safe017_PSO_OPT/test.desc | 2 +- .../ppc_safe017_RMO_OPT/test.desc | 2 +- .../ppc_safe017_TSO_OPT/test.desc | 2 +- .../ppc_safe018_POWER_OPT/test.desc | 2 +- .../ppc_safe018_PSO_OPT/test.desc | 2 +- .../ppc_safe018_RMO_OPT/test.desc | 2 +- .../ppc_safe018_TSO_OPT/test.desc | 2 +- .../ppc_safe019_POWER_OPT/test.desc | 2 +- .../ppc_safe019_PSO_OPT/test.desc | 2 +- .../ppc_safe019_RMO_OPT/test.desc | 2 +- .../ppc_safe019_TSO_OPT/test.desc | 2 +- .../ppc_safe020_POWER_OPT/test.desc | 2 +- .../ppc_safe020_PSO_OPT/test.desc | 2 +- .../ppc_safe020_RMO_OPT/test.desc | 2 +- .../ppc_safe020_TSO_OPT/test.desc | 2 +- .../ppc_safe021_POWER_OPT/test.desc | 2 +- .../ppc_safe021_PSO_OPT/test.desc | 2 +- .../ppc_safe021_RMO_OPT/test.desc | 2 +- .../ppc_safe021_TSO_OPT/test.desc | 2 +- .../ppc_safe022_POWER_OPT/test.desc | 2 +- .../ppc_safe022_PSO_OPT/test.desc | 2 +- .../ppc_safe022_RMO_OPT/test.desc | 2 +- .../ppc_safe022_TSO_OPT/test.desc | 2 +- .../ppc_safe023_POWER_OPT/test.desc | 2 +- .../ppc_safe023_PSO_OPT/test.desc | 2 +- .../ppc_safe023_RMO_OPT/test.desc | 2 +- .../ppc_safe023_TSO_OPT/test.desc | 2 +- .../ppc_safe024_POWER_OPT/test.desc | 2 +- .../ppc_safe024_PSO_OPT/test.desc | 2 +- .../ppc_safe024_RMO_OPT/test.desc | 2 +- .../ppc_safe024_TSO_OPT/test.desc | 2 +- .../ppc_safe025_POWER_OPT/test.desc | 2 +- .../ppc_safe025_PSO_OPT/test.desc | 2 +- .../ppc_safe025_RMO_OPT/test.desc | 2 +- .../ppc_safe025_TSO_OPT/test.desc | 2 +- .../ppc_safe026_POWER_OPT/test.desc | 2 +- .../ppc_safe026_PSO_OPT/test.desc | 2 +- .../ppc_safe026_RMO_OPT/test.desc | 2 +- .../ppc_safe026_TSO_OPT/test.desc | 2 +- .../ppc_safe027_POWER_OPT/test.desc | 2 +- .../ppc_safe027_PSO_OPT/test.desc | 2 +- .../ppc_safe027_RMO_OPT/test.desc | 2 +- .../ppc_safe027_TSO_OPT/test.desc | 2 +- .../ppc_safe028_POWER_OPT/test.desc | 2 +- .../ppc_safe028_PSO_OPT/test.desc | 2 +- .../ppc_safe028_RMO_OPT/test.desc | 2 +- .../ppc_safe028_TSO_OPT/test.desc | 2 +- .../ppc_safe029_POWER_OPT/test.desc | 2 +- .../ppc_safe029_PSO_OPT/test.desc | 2 +- .../ppc_safe029_RMO_OPT/test.desc | 2 +- .../ppc_safe029_TSO_OPT/test.desc | 2 +- .../ppc_safe030_POWER_OPT/test.desc | 2 +- .../ppc_safe030_PSO_OPT/test.desc | 2 +- .../ppc_safe030_RMO_OPT/test.desc | 2 +- .../ppc_safe030_TSO_OPT/test.desc | 2 +- .../ppc_safe031_POWER_OPT/test.desc | 2 +- .../ppc_safe031_PSO_OPT/test.desc | 2 +- .../ppc_safe031_RMO_OPT/test.desc | 2 +- .../ppc_safe031_TSO_OPT/test.desc | 2 +- .../ppc_safe032_POWER_OPT/test.desc | 2 +- .../ppc_safe032_PSO_OPT/test.desc | 2 +- .../ppc_safe032_RMO_OPT/test.desc | 2 +- .../ppc_safe032_TSO_OPT/test.desc | 2 +- .../ppc_safe033_POWER_OPT/test.desc | 2 +- .../ppc_safe033_PSO_OPT/test.desc | 2 +- .../ppc_safe033_RMO_OPT/test.desc | 2 +- .../ppc_safe033_TSO_OPT/test.desc | 2 +- .../ppc_safe034_POWER_OPT/test.desc | 2 +- .../ppc_safe034_PSO_OPT/test.desc | 2 +- .../ppc_safe034_RMO_OPT/test.desc | 2 +- .../ppc_safe034_TSO_OPT/test.desc | 2 +- .../ppc_safe035_POWER_OPT/test.desc | 2 +- .../ppc_safe035_PSO_OPT/test.desc | 2 +- .../ppc_safe035_RMO_OPT/test.desc | 2 +- .../ppc_safe035_TSO_OPT/test.desc | 2 +- .../ppc_safe036_POWER_OPT/test.desc | 2 +- .../ppc_safe036_PSO_OPT/test.desc | 2 +- .../ppc_safe036_RMO_OPT/test.desc | 2 +- .../ppc_safe036_TSO_OPT/test.desc | 2 +- .../ppc_safe037_POWER_OPT/test.desc | 2 +- .../ppc_safe037_PSO_OPT/test.desc | 2 +- .../ppc_safe037_RMO_OPT/test.desc | 2 +- .../ppc_safe037_TSO_OPT/test.desc | 2 +- .../ppc_safe038_POWER_OPT/test.desc | 2 +- .../ppc_safe038_PSO_OPT/test.desc | 2 +- .../ppc_safe038_RMO_OPT/test.desc | 2 +- .../ppc_safe038_TSO_OPT/test.desc | 2 +- .../ppc_safe039_POWER_OPT/test.desc | 2 +- .../ppc_safe039_PSO_OPT/test.desc | 2 +- .../ppc_safe039_RMO_OPT/test.desc | 2 +- .../ppc_safe039_TSO_OPT/test.desc | 2 +- .../ppc_safe040_POWER_OPT/test.desc | 2 +- .../ppc_safe040_PSO_OPT/test.desc | 2 +- .../ppc_safe040_RMO_OPT/test.desc | 2 +- .../ppc_safe040_TSO_OPT/test.desc | 2 +- .../ppc_safe041_POWER_OPT/test.desc | 2 +- .../ppc_safe041_PSO_OPT/test.desc | 2 +- .../ppc_safe041_RMO_OPT/test.desc | 2 +- .../ppc_safe041_TSO_OPT/test.desc | 2 +- .../ppc_safe042_POWER_OPT/test.desc | 2 +- .../ppc_safe042_PSO_OPT/test.desc | 2 +- .../ppc_safe042_RMO_OPT/test.desc | 2 +- .../ppc_safe042_TSO_OPT/test.desc | 2 +- .../ppc_safe043_POWER_OPT/test.desc | 2 +- .../ppc_safe043_PSO_OPT/test.desc | 2 +- .../ppc_safe043_RMO_OPT/test.desc | 2 +- .../ppc_safe043_TSO_OPT/test.desc | 2 +- .../ppc_safe044_POWER_OPT/test.desc | 2 +- .../ppc_safe044_PSO_OPT/test.desc | 2 +- .../ppc_safe044_RMO_OPT/test.desc | 2 +- .../ppc_safe044_TSO_OPT/test.desc | 2 +- .../ppc_safe045_POWER_OPT/test.desc | 2 +- .../ppc_safe045_PSO_OPT/test.desc | 2 +- .../ppc_safe045_RMO_OPT/test.desc | 2 +- .../ppc_safe045_TSO_OPT/test.desc | 2 +- .../ppc_safe046_POWER_OPT/test.desc | 2 +- .../ppc_safe046_PSO_OPT/test.desc | 2 +- .../ppc_safe046_RMO_OPT/test.desc | 2 +- .../ppc_safe046_TSO_OPT/test.desc | 2 +- .../ppc_safe047_POWER_OPT/test.desc | 2 +- .../ppc_safe047_PSO_OPT/test.desc | 2 +- .../ppc_safe047_RMO_OPT/test.desc | 2 +- .../ppc_safe047_TSO_OPT/test.desc | 2 +- .../ppc_safe048_POWER_OPT/test.desc | 2 +- .../ppc_safe048_PSO_OPT/test.desc | 2 +- .../ppc_safe048_RMO_OPT/test.desc | 2 +- .../ppc_safe048_TSO_OPT/test.desc | 2 +- .../ppc_safe049_POWER_OPT/test.desc | 2 +- .../ppc_safe049_PSO_OPT/test.desc | 2 +- .../ppc_safe049_RMO_OPT/test.desc | 2 +- .../ppc_safe049_TSO_OPT/test.desc | 2 +- .../ppc_safe050_POWER_OPT/test.desc | 2 +- .../ppc_safe050_PSO_OPT/test.desc | 2 +- .../ppc_safe050_RMO_OPT/test.desc | 2 +- .../ppc_safe050_TSO_OPT/test.desc | 2 +- .../ppc_safe051_POWER_OPT/test.desc | 2 +- .../ppc_safe051_PSO_OPT/test.desc | 2 +- .../ppc_safe051_RMO_OPT/test.desc | 2 +- .../ppc_safe051_TSO_OPT/test.desc | 2 +- .../ppc_safe052_POWER_OPT/test.desc | 2 +- .../ppc_safe052_PSO_OPT/test.desc | 2 +- .../ppc_safe052_RMO_OPT/test.desc | 2 +- .../ppc_safe052_TSO_OPT/test.desc | 2 +- .../ppc_safe053_POWER_OPT/test.desc | 2 +- .../ppc_safe053_PSO_OPT/test.desc | 2 +- .../ppc_safe053_RMO_OPT/test.desc | 2 +- .../ppc_safe053_TSO_OPT/test.desc | 2 +- .../ppc_safe054_POWER_OPT/test.desc | 2 +- .../ppc_safe054_PSO_OPT/test.desc | 2 +- .../ppc_safe054_RMO_OPT/test.desc | 2 +- .../ppc_safe054_TSO_OPT/test.desc | 2 +- .../ppc_safe055_POWER_OPT/test.desc | 2 +- .../ppc_safe055_PSO_OPT/test.desc | 2 +- .../ppc_safe055_RMO_OPT/test.desc | 2 +- .../ppc_safe055_TSO_OPT/test.desc | 2 +- .../ppc_safe056_POWER_OPT/test.desc | 2 +- .../ppc_safe056_PSO_OPT/test.desc | 2 +- .../ppc_safe056_RMO_OPT/test.desc | 2 +- .../ppc_safe056_TSO_OPT/test.desc | 2 +- .../ppc_safe057_POWER_OPT/test.desc | 2 +- .../ppc_safe057_PSO_OPT/test.desc | 2 +- .../ppc_safe057_RMO_OPT/test.desc | 2 +- .../ppc_safe057_TSO_OPT/test.desc | 2 +- .../ppc_safe058_POWER_OPT/test.desc | 2 +- .../ppc_safe058_PSO_OPT/test.desc | 2 +- .../ppc_safe058_RMO_OPT/test.desc | 2 +- .../ppc_safe058_TSO_OPT/test.desc | 2 +- .../ppc_safe059_POWER_OPT/test.desc | 2 +- .../ppc_safe059_PSO_OPT/test.desc | 2 +- .../ppc_safe059_RMO_OPT/test.desc | 2 +- .../ppc_safe059_TSO_OPT/test.desc | 2 +- .../ppc_safe060_POWER_OPT/test.desc | 2 +- .../ppc_safe060_PSO_OPT/test.desc | 2 +- .../ppc_safe060_RMO_OPT/test.desc | 2 +- .../ppc_safe060_TSO_OPT/test.desc | 2 +- .../ppc_safe061_POWER_OPT/test.desc | 2 +- .../ppc_safe061_PSO_OPT/test.desc | 2 +- .../ppc_safe061_RMO_OPT/test.desc | 2 +- .../ppc_safe061_TSO_OPT/test.desc | 2 +- .../ppc_safe062_POWER_OPT/test.desc | 2 +- .../ppc_safe062_PSO_OPT/test.desc | 2 +- .../ppc_safe062_RMO_OPT/test.desc | 2 +- .../ppc_safe062_TSO_OPT/test.desc | 2 +- .../ppc_safe063_POWER_OPT/test.desc | 2 +- .../ppc_safe063_PSO_OPT/test.desc | 2 +- .../ppc_safe063_RMO_OPT/test.desc | 2 +- .../ppc_safe063_TSO_OPT/test.desc | 2 +- .../ppc_safe064_POWER_OPT/test.desc | 2 +- .../ppc_safe064_PSO_OPT/test.desc | 2 +- .../ppc_safe064_RMO_OPT/test.desc | 2 +- .../ppc_safe064_TSO_OPT/test.desc | 2 +- .../ppc_safe065_POWER_OPT/test.desc | 2 +- .../ppc_safe065_PSO_OPT/test.desc | 2 +- .../ppc_safe065_RMO_OPT/test.desc | 2 +- .../ppc_safe065_TSO_OPT/test.desc | 2 +- .../ppc_safe066_POWER_OPT/test.desc | 2 +- .../ppc_safe066_PSO_OPT/test.desc | 2 +- .../ppc_safe066_RMO_OPT/test.desc | 2 +- .../ppc_safe066_TSO_OPT/test.desc | 2 +- .../ppc_safe067_POWER_OPT/test.desc | 2 +- .../ppc_safe067_PSO_OPT/test.desc | 2 +- .../ppc_safe067_RMO_OPT/test.desc | 2 +- .../ppc_safe067_TSO_OPT/test.desc | 2 +- .../ppc_safe068_POWER_OPT/test.desc | 2 +- .../ppc_safe068_PSO_OPT/test.desc | 2 +- .../ppc_safe068_RMO_OPT/test.desc | 2 +- .../ppc_safe068_TSO_OPT/test.desc | 2 +- .../ppc_safe069_POWER_OPT/test.desc | 2 +- .../ppc_safe069_PSO_OPT/test.desc | 2 +- .../ppc_safe069_RMO_OPT/test.desc | 2 +- .../ppc_safe069_TSO_OPT/test.desc | 2 +- .../ppc_safe070_POWER_OPT/test.desc | 2 +- .../ppc_safe070_PSO_OPT/test.desc | 2 +- .../ppc_safe070_RMO_OPT/test.desc | 2 +- .../ppc_safe070_TSO_OPT/test.desc | 2 +- .../ppc_safe071_POWER_OPT/test.desc | 2 +- .../ppc_safe071_PSO_OPT/test.desc | 2 +- .../ppc_safe071_RMO_OPT/test.desc | 2 +- .../ppc_safe071_TSO_OPT/test.desc | 2 +- .../ppc_safe072_POWER_OPT/test.desc | 2 +- .../ppc_safe072_PSO_OPT/test.desc | 2 +- .../ppc_safe072_RMO_OPT/test.desc | 2 +- .../ppc_safe072_TSO_OPT/test.desc | 2 +- .../ppc_safe073_POWER_OPT/test.desc | 2 +- .../ppc_safe073_PSO_OPT/test.desc | 2 +- .../ppc_safe073_RMO_OPT/test.desc | 2 +- .../ppc_safe073_TSO_OPT/test.desc | 2 +- .../ppc_safe074_POWER_OPT/test.desc | 2 +- .../ppc_safe074_PSO_OPT/test.desc | 2 +- .../ppc_safe074_RMO_OPT/test.desc | 2 +- .../ppc_safe074_TSO_OPT/test.desc | 2 +- .../ppc_safe075_POWER_OPT/test.desc | 2 +- .../ppc_safe075_PSO_OPT/test.desc | 2 +- .../ppc_safe075_RMO_OPT/test.desc | 2 +- .../ppc_safe075_TSO_OPT/test.desc | 2 +- .../ppc_safe076_POWER_OPT/test.desc | 2 +- .../ppc_safe076_PSO_OPT/test.desc | 2 +- .../ppc_safe076_RMO_OPT/test.desc | 2 +- .../ppc_safe076_TSO_OPT/test.desc | 2 +- .../ppc_safe077_POWER_OPT/test.desc | 2 +- .../ppc_safe077_PSO_OPT/test.desc | 2 +- .../ppc_safe077_RMO_OPT/test.desc | 2 +- .../ppc_safe077_TSO_OPT/test.desc | 2 +- .../ppc_safe078_POWER_OPT/test.desc | 2 +- .../ppc_safe078_PSO_OPT/test.desc | 2 +- .../ppc_safe078_RMO_OPT/test.desc | 2 +- .../ppc_safe078_TSO_OPT/test.desc | 2 +- .../ppc_safe079_POWER_OPT/test.desc | 2 +- .../ppc_safe079_PSO_OPT/test.desc | 2 +- .../ppc_safe079_RMO_OPT/test.desc | 2 +- .../ppc_safe079_TSO_OPT/test.desc | 2 +- .../ppc_safe080_POWER_OPT/test.desc | 2 +- .../ppc_safe080_PSO_OPT/test.desc | 2 +- .../ppc_safe080_RMO_OPT/test.desc | 2 +- .../ppc_safe080_TSO_OPT/test.desc | 2 +- .../ppc_safe081_POWER_OPT/test.desc | 2 +- .../ppc_safe081_PSO_OPT/test.desc | 2 +- .../ppc_safe081_RMO_OPT/test.desc | 2 +- .../ppc_safe081_TSO_OPT/test.desc | 2 +- .../ppc_safe082_POWER_OPT/test.desc | 2 +- .../ppc_safe082_PSO_OPT/test.desc | 2 +- .../ppc_safe082_RMO_OPT/test.desc | 2 +- .../ppc_safe082_TSO_OPT/test.desc | 2 +- .../ppc_safe083_POWER_OPT/test.desc | 2 +- .../ppc_safe083_PSO_OPT/test.desc | 2 +- .../ppc_safe083_RMO_OPT/test.desc | 2 +- .../ppc_safe083_TSO_OPT/test.desc | 2 +- .../ppc_safe084_POWER_OPT/test.desc | 2 +- .../ppc_safe084_PSO_OPT/test.desc | 2 +- .../ppc_safe084_RMO_OPT/test.desc | 2 +- .../ppc_safe084_TSO_OPT/test.desc | 2 +- .../ppc_safe085_POWER_OPT/test.desc | 2 +- .../ppc_safe085_PSO_OPT/test.desc | 2 +- .../ppc_safe085_RMO_OPT/test.desc | 2 +- .../ppc_safe085_TSO_OPT/test.desc | 2 +- .../ppc_safe086_POWER_OPT/test.desc | 2 +- .../ppc_safe086_PSO_OPT/test.desc | 2 +- .../ppc_safe086_RMO_OPT/test.desc | 2 +- .../ppc_safe086_TSO_OPT/test.desc | 2 +- .../ppc_safe087_POWER_OPT/test.desc | 2 +- .../ppc_safe087_PSO_OPT/test.desc | 2 +- .../ppc_safe087_RMO_OPT/test.desc | 2 +- .../ppc_safe087_TSO_OPT/test.desc | 2 +- .../ppc_safe088_POWER_OPT/test.desc | 2 +- .../ppc_safe088_PSO_OPT/test.desc | 2 +- .../ppc_safe088_RMO_OPT/test.desc | 2 +- .../ppc_safe088_TSO_OPT/test.desc | 2 +- .../ppc_safe089_POWER_OPT/test.desc | 2 +- .../ppc_safe089_PSO_OPT/test.desc | 2 +- .../ppc_safe089_RMO_OPT/test.desc | 2 +- .../ppc_safe089_TSO_OPT/test.desc | 2 +- .../ppc_safe090_POWER_OPT/test.desc | 2 +- .../ppc_safe090_PSO_OPT/test.desc | 2 +- .../ppc_safe090_RMO_OPT/test.desc | 2 +- .../ppc_safe090_TSO_OPT/test.desc | 2 +- .../ppc_safe091_POWER_OPT/test.desc | 2 +- .../ppc_safe091_PSO_OPT/test.desc | 2 +- .../ppc_safe091_RMO_OPT/test.desc | 2 +- .../ppc_safe091_TSO_OPT/test.desc | 2 +- .../ppc_safe092_POWER_OPT/test.desc | 2 +- .../ppc_safe092_PSO_OPT/test.desc | 2 +- .../ppc_safe092_RMO_OPT/test.desc | 2 +- .../ppc_safe092_TSO_OPT/test.desc | 2 +- .../ppc_safe093_POWER_OPT/test.desc | 2 +- .../ppc_safe093_PSO_OPT/test.desc | 2 +- .../ppc_safe093_RMO_OPT/test.desc | 2 +- .../ppc_safe093_TSO_OPT/test.desc | 2 +- .../ppc_safe094_POWER_OPT/test.desc | 2 +- .../ppc_safe094_PSO_OPT/test.desc | 2 +- .../ppc_safe094_RMO_OPT/test.desc | 2 +- .../ppc_safe094_TSO_OPT/test.desc | 2 +- .../ppc_safe095_POWER_OPT/test.desc | 2 +- .../ppc_safe095_PSO_OPT/test.desc | 2 +- .../ppc_safe095_RMO_OPT/test.desc | 2 +- .../ppc_safe095_TSO_OPT/test.desc | 2 +- .../ppc_safe096_POWER_OPT/test.desc | 2 +- .../ppc_safe096_PSO_OPT/test.desc | 2 +- .../ppc_safe096_RMO_OPT/test.desc | 2 +- .../ppc_safe096_TSO_OPT/test.desc | 2 +- .../ppc_safe097_POWER_OPT/test.desc | 2 +- .../ppc_safe097_PSO_OPT/test.desc | 2 +- .../ppc_safe097_RMO_OPT/test.desc | 2 +- .../ppc_safe097_TSO_OPT/test.desc | 2 +- .../ppc_safe098_POWER_OPT/test.desc | 2 +- .../ppc_safe098_PSO_OPT/test.desc | 2 +- .../ppc_safe098_RMO_OPT/test.desc | 2 +- .../ppc_safe098_TSO_OPT/test.desc | 2 +- .../ppc_safe099_POWER_OPT/test.desc | 2 +- .../ppc_safe099_PSO_OPT/test.desc | 2 +- .../ppc_safe099_RMO_OPT/test.desc | 2 +- .../ppc_safe099_TSO_OPT/test.desc | 2 +- .../ppc_safe100_POWER_OPT/test.desc | 2 +- .../ppc_safe100_PSO_OPT/test.desc | 2 +- .../ppc_safe100_RMO_OPT/test.desc | 2 +- .../ppc_safe100_TSO_OPT/test.desc | 2 +- .../ppc_safe101_POWER_OPT/test.desc | 2 +- .../ppc_safe101_PSO_OPT/test.desc | 2 +- .../ppc_safe101_RMO_OPT/test.desc | 2 +- .../ppc_safe101_TSO_OPT/test.desc | 2 +- .../ppc_safe102_POWER_OPT/test.desc | 2 +- .../ppc_safe102_PSO_OPT/test.desc | 2 +- .../ppc_safe102_RMO_OPT/test.desc | 2 +- .../ppc_safe102_TSO_OPT/test.desc | 2 +- .../ppc_safe103_POWER_OPT/test.desc | 2 +- .../ppc_safe103_PSO_OPT/test.desc | 2 +- .../ppc_safe103_RMO_OPT/test.desc | 2 +- .../ppc_safe103_TSO_OPT/test.desc | 2 +- .../ppc_safe104_POWER_OPT/test.desc | 2 +- .../ppc_safe104_PSO_OPT/test.desc | 2 +- .../ppc_safe104_RMO_OPT/test.desc | 2 +- .../ppc_safe104_TSO_OPT/test.desc | 2 +- .../ppc_safe105_POWER_OPT/test.desc | 2 +- .../ppc_safe105_PSO_OPT/test.desc | 2 +- .../ppc_safe105_RMO_OPT/test.desc | 2 +- .../ppc_safe105_TSO_OPT/test.desc | 2 +- .../ppc_safe106_POWER_OPT/test.desc | 2 +- .../ppc_safe106_PSO_OPT/test.desc | 2 +- .../ppc_safe106_RMO_OPT/test.desc | 2 +- .../ppc_safe106_TSO_OPT/test.desc | 2 +- .../ppc_safe107_POWER_OPT/test.desc | 2 +- .../ppc_safe107_PSO_OPT/test.desc | 2 +- .../ppc_safe107_RMO_OPT/test.desc | 2 +- .../ppc_safe107_TSO_OPT/test.desc | 2 +- .../ppc_safe108_POWER_OPT/test.desc | 2 +- .../ppc_safe108_PSO_OPT/test.desc | 2 +- .../ppc_safe108_RMO_OPT/test.desc | 2 +- .../ppc_safe108_TSO_OPT/test.desc | 2 +- .../ppc_safe109_POWER_OPT/test.desc | 2 +- .../ppc_safe109_PSO_OPT/test.desc | 2 +- .../ppc_safe109_RMO_OPT/test.desc | 2 +- .../ppc_safe109_TSO_OPT/test.desc | 2 +- .../ppc_safe110_POWER_OPT/test.desc | 2 +- .../ppc_safe110_PSO_OPT/test.desc | 2 +- .../ppc_safe110_RMO_OPT/test.desc | 2 +- .../ppc_safe110_TSO_OPT/test.desc | 2 +- .../ppc_safe111_POWER_OPT/test.desc | 2 +- .../ppc_safe111_PSO_OPT/test.desc | 2 +- .../ppc_safe111_RMO_OPT/test.desc | 2 +- .../ppc_safe111_TSO_OPT/test.desc | 2 +- .../ppc_safe112_POWER_OPT/test.desc | 2 +- .../ppc_safe112_PSO_OPT/test.desc | 2 +- .../ppc_safe112_RMO_OPT/test.desc | 2 +- .../ppc_safe112_TSO_OPT/test.desc | 2 +- .../ppc_safe113_POWER_OPT/test.desc | 2 +- .../ppc_safe113_PSO_OPT/test.desc | 2 +- .../ppc_safe113_RMO_OPT/test.desc | 2 +- .../ppc_safe113_TSO_OPT/test.desc | 2 +- .../ppc_safe114_POWER_OPT/test.desc | 2 +- .../ppc_safe114_PSO_OPT/test.desc | 2 +- .../ppc_safe114_RMO_OPT/test.desc | 2 +- .../ppc_safe114_TSO_OPT/test.desc | 2 +- .../ppc_safe115_POWER_OPT/test.desc | 2 +- .../ppc_safe115_PSO_OPT/test.desc | 2 +- .../ppc_safe115_RMO_OPT/test.desc | 2 +- .../ppc_safe115_TSO_OPT/test.desc | 2 +- .../ppc_safe116_POWER_OPT/test.desc | 2 +- .../ppc_safe116_PSO_OPT/test.desc | 2 +- .../ppc_safe116_RMO_OPT/test.desc | 2 +- .../ppc_safe116_TSO_OPT/test.desc | 2 +- .../ppc_safe117_POWER_OPT/test.desc | 2 +- .../ppc_safe117_PSO_OPT/test.desc | 2 +- .../ppc_safe117_RMO_OPT/test.desc | 2 +- .../ppc_safe117_TSO_OPT/test.desc | 2 +- .../ppc_safe118_POWER_OPT/test.desc | 2 +- .../ppc_safe118_PSO_OPT/test.desc | 2 +- .../ppc_safe118_RMO_OPT/test.desc | 2 +- .../ppc_safe118_TSO_OPT/test.desc | 2 +- .../ppc_safe119_POWER_OPT/test.desc | 2 +- .../ppc_safe119_PSO_OPT/test.desc | 2 +- .../ppc_safe119_RMO_OPT/test.desc | 2 +- .../ppc_safe119_TSO_OPT/test.desc | 2 +- .../ppc_safe120_POWER_OPT/test.desc | 2 +- .../ppc_safe120_PSO_OPT/test.desc | 2 +- .../ppc_safe120_RMO_OPT/test.desc | 2 +- .../ppc_safe120_TSO_OPT/test.desc | 2 +- .../ppc_safe121_POWER_OPT/test.desc | 2 +- .../ppc_safe121_PSO_OPT/test.desc | 2 +- .../ppc_safe121_RMO_OPT/test.desc | 2 +- .../ppc_safe121_TSO_OPT/test.desc | 2 +- .../ppc_safe122_POWER_OPT/test.desc | 2 +- .../ppc_safe122_PSO_OPT/test.desc | 2 +- .../ppc_safe122_RMO_OPT/test.desc | 2 +- .../ppc_safe122_TSO_OPT/test.desc | 2 +- .../ppc_safe123_POWER_OPT/test.desc | 2 +- .../ppc_safe123_PSO_OPT/test.desc | 2 +- .../ppc_safe123_RMO_OPT/test.desc | 2 +- .../ppc_safe123_TSO_OPT/test.desc | 2 +- .../ppc_safe124_POWER_OPT/test.desc | 2 +- .../ppc_safe124_PSO_OPT/test.desc | 2 +- .../ppc_safe124_RMO_OPT/test.desc | 2 +- .../ppc_safe124_TSO_OPT/test.desc | 2 +- .../ppc_safe125_POWER_OPT/test.desc | 2 +- .../ppc_safe125_PSO_OPT/test.desc | 2 +- .../ppc_safe125_RMO_OPT/test.desc | 2 +- .../ppc_safe125_TSO_OPT/test.desc | 2 +- .../ppc_thin000_POWER_OPT/test.desc | 2 +- .../ppc_thin000_PSO_OPT/test.desc | 2 +- .../ppc_thin000_RMO_OPT/test.desc | 2 +- .../ppc_thin000_TSO_OPT/test.desc | 2 +- .../ppc_thin001_POWER_OPT/test.desc | 2 +- .../ppc_thin001_PSO_OPT/test.desc | 2 +- .../ppc_thin001_RMO_OPT/test.desc | 2 +- .../ppc_thin001_TSO_OPT/test.desc | 2 +- .../ppc_thin002_POWER_OPT/test.desc | 2 +- .../ppc_thin002_PSO_OPT/test.desc | 2 +- .../ppc_thin002_RMO_OPT/test.desc | 2 +- .../ppc_thin002_TSO_OPT/test.desc | 2 +- .../ppc_thin003_POWER_OPT/test.desc | 2 +- .../ppc_thin003_PSO_OPT/test.desc | 2 +- .../ppc_thin003_RMO_OPT/test.desc | 2 +- .../ppc_thin003_TSO_OPT/test.desc | 2 +- .../ppc_thin004_POWER_OPT/test.desc | 2 +- .../ppc_thin004_PSO_OPT/test.desc | 2 +- .../ppc_thin004_RMO_OPT/test.desc | 2 +- .../ppc_thin004_TSO_OPT/test.desc | 2 +- .../ppc_thin005_POWER_OPT/test.desc | 2 +- .../ppc_thin005_PSO_OPT/test.desc | 2 +- .../ppc_thin005_RMO_OPT/test.desc | 2 +- .../ppc_thin005_TSO_OPT/test.desc | 2 +- .../ppc_thin006_POWER_OPT/test.desc | 2 +- .../ppc_thin006_PSO_OPT/test.desc | 2 +- .../ppc_thin006_RMO_OPT/test.desc | 2 +- .../ppc_thin006_TSO_OPT/test.desc | 2 +- .../ppc_thin007_POWER_OPT/test.desc | 2 +- .../ppc_thin007_PSO_OPT/test.desc | 2 +- .../ppc_thin007_RMO_OPT/test.desc | 2 +- .../ppc_thin007_TSO_OPT/test.desc | 2 +- .../x86_mix000_POWER_OPT/test.desc | 2 +- .../x86_mix000_PSO_OPT/test.desc | 2 +- .../x86_mix000_RMO_OPT/test.desc | 2 +- .../x86_mix000_TSO_OPT/test.desc | 2 +- .../x86_mix001_POWER_OPT/test.desc | 2 +- .../x86_mix001_PSO_OPT/test.desc | 2 +- .../x86_mix001_RMO_OPT/test.desc | 2 +- .../x86_mix001_TSO_OPT/test.desc | 2 +- .../x86_mix002_POWER_OPT/test.desc | 2 +- .../x86_mix002_PSO_OPT/test.desc | 2 +- .../x86_mix002_RMO_OPT/test.desc | 2 +- .../x86_mix002_TSO_OPT/test.desc | 2 +- .../x86_mix003_POWER_OPT/test.desc | 2 +- .../x86_mix003_PSO_OPT/test.desc | 2 +- .../x86_mix003_RMO_OPT/test.desc | 2 +- .../x86_mix003_TSO_OPT/test.desc | 2 +- .../x86_mix004_POWER_OPT/test.desc | 2 +- .../x86_mix004_PSO_OPT/test.desc | 2 +- .../x86_mix004_RMO_OPT/test.desc | 2 +- .../x86_mix004_TSO_OPT/test.desc | 2 +- .../x86_mix005_POWER_OPT/test.desc | 2 +- .../x86_mix005_PSO_OPT/test.desc | 2 +- .../x86_mix005_RMO_OPT/test.desc | 2 +- .../x86_mix005_TSO_OPT/test.desc | 2 +- .../x86_mix006_POWER_OPT/test.desc | 2 +- .../x86_mix006_PSO_OPT/test.desc | 2 +- .../x86_mix006_RMO_OPT/test.desc | 2 +- .../x86_mix006_TSO_OPT/test.desc | 2 +- .../x86_mix007_POWER_OPT/test.desc | 2 +- .../x86_mix007_PSO_OPT/test.desc | 2 +- .../x86_mix007_RMO_OPT/test.desc | 2 +- .../x86_mix007_TSO_OPT/test.desc | 2 +- .../x86_mix008_POWER_OPT/test.desc | 2 +- .../x86_mix008_PSO_OPT/test.desc | 2 +- .../x86_mix008_RMO_OPT/test.desc | 2 +- .../x86_mix008_TSO_OPT/test.desc | 2 +- .../x86_mix009_POWER_OPT/test.desc | 2 +- .../x86_mix009_PSO_OPT/test.desc | 2 +- .../x86_mix009_RMO_OPT/test.desc | 2 +- .../x86_mix009_TSO_OPT/test.desc | 2 +- .../x86_mix010_POWER_OPT/test.desc | 2 +- .../x86_mix010_PSO_OPT/test.desc | 2 +- .../x86_mix010_RMO_OPT/test.desc | 2 +- .../x86_mix010_TSO_OPT/test.desc | 2 +- .../x86_mix011_POWER_OPT/test.desc | 2 +- .../x86_mix011_PSO_OPT/test.desc | 2 +- .../x86_mix011_RMO_OPT/test.desc | 2 +- .../x86_mix011_TSO_OPT/test.desc | 2 +- .../x86_mix012_POWER_OPT/test.desc | 2 +- .../x86_mix012_PSO_OPT/test.desc | 2 +- .../x86_mix012_RMO_OPT/test.desc | 2 +- .../x86_mix012_TSO_OPT/test.desc | 2 +- .../x86_mix013_POWER_OPT/test.desc | 2 +- .../x86_mix013_PSO_OPT/test.desc | 2 +- .../x86_mix013_RMO_OPT/test.desc | 2 +- .../x86_mix013_TSO_OPT/test.desc | 2 +- .../x86_mix014_POWER_OPT/test.desc | 2 +- .../x86_mix014_PSO_OPT/test.desc | 2 +- .../x86_mix014_RMO_OPT/test.desc | 2 +- .../x86_mix014_TSO_OPT/test.desc | 2 +- .../x86_mix015_POWER_OPT/test.desc | 2 +- .../x86_mix015_PSO_OPT/test.desc | 2 +- .../x86_mix015_RMO_OPT/test.desc | 2 +- .../x86_mix015_TSO_OPT/test.desc | 2 +- .../x86_mix016_POWER_OPT/test.desc | 2 +- .../x86_mix016_PSO_OPT/test.desc | 2 +- .../x86_mix016_RMO_OPT/test.desc | 2 +- .../x86_mix016_TSO_OPT/test.desc | 2 +- .../x86_mix017_POWER_OPT/test.desc | 2 +- .../x86_mix017_PSO_OPT/test.desc | 2 +- .../x86_mix017_RMO_OPT/test.desc | 2 +- .../x86_mix017_TSO_OPT/test.desc | 2 +- .../x86_mix018_POWER_OPT/test.desc | 2 +- .../x86_mix018_PSO_OPT/test.desc | 2 +- .../x86_mix018_RMO_OPT/test.desc | 2 +- .../x86_mix018_TSO_OPT/test.desc | 2 +- .../x86_mix019_POWER_OPT/test.desc | 2 +- .../x86_mix019_PSO_OPT/test.desc | 2 +- .../x86_mix019_RMO_OPT/test.desc | 2 +- .../x86_mix019_TSO_OPT/test.desc | 2 +- .../x86_mix020_POWER_OPT/test.desc | 2 +- .../x86_mix020_PSO_OPT/test.desc | 2 +- .../x86_mix020_RMO_OPT/test.desc | 2 +- .../x86_mix020_TSO_OPT/test.desc | 2 +- .../x86_mix021_POWER_OPT/test.desc | 2 +- .../x86_mix021_PSO_OPT/test.desc | 2 +- .../x86_mix021_RMO_OPT/test.desc | 2 +- .../x86_mix021_TSO_OPT/test.desc | 2 +- .../x86_mix022_POWER_OPT/test.desc | 2 +- .../x86_mix022_PSO_OPT/test.desc | 2 +- .../x86_mix022_RMO_OPT/test.desc | 2 +- .../x86_mix022_TSO_OPT/test.desc | 2 +- .../x86_mix023_POWER_OPT/test.desc | 2 +- .../x86_mix023_PSO_OPT/test.desc | 2 +- .../x86_mix023_RMO_OPT/test.desc | 2 +- .../x86_mix023_TSO_OPT/test.desc | 2 +- .../x86_mix024_POWER_OPT/test.desc | 2 +- .../x86_mix024_PSO_OPT/test.desc | 2 +- .../x86_mix024_RMO_OPT/test.desc | 2 +- .../x86_mix024_TSO_OPT/test.desc | 2 +- .../x86_mix025_POWER_OPT/test.desc | 2 +- .../x86_mix025_PSO_OPT/test.desc | 2 +- .../x86_mix025_RMO_OPT/test.desc | 2 +- .../x86_mix025_TSO_OPT/test.desc | 2 +- .../x86_mix026_POWER_OPT/test.desc | 2 +- .../x86_mix026_PSO_OPT/test.desc | 2 +- .../x86_mix026_RMO_OPT/test.desc | 2 +- .../x86_mix026_TSO_OPT/test.desc | 2 +- .../x86_mix027_POWER_OPT/test.desc | 2 +- .../x86_mix027_PSO_OPT/test.desc | 2 +- .../x86_mix027_RMO_OPT/test.desc | 2 +- .../x86_mix027_TSO_OPT/test.desc | 2 +- .../x86_mix028_POWER_OPT/test.desc | 2 +- .../x86_mix028_PSO_OPT/test.desc | 2 +- .../x86_mix028_RMO_OPT/test.desc | 2 +- .../x86_mix028_TSO_OPT/test.desc | 2 +- .../x86_mix029_POWER_OPT/test.desc | 2 +- .../x86_mix029_PSO_OPT/test.desc | 2 +- .../x86_mix029_RMO_OPT/test.desc | 2 +- .../x86_mix029_TSO_OPT/test.desc | 2 +- .../x86_mix030_POWER_OPT/test.desc | 2 +- .../x86_mix030_PSO_OPT/test.desc | 2 +- .../x86_mix030_RMO_OPT/test.desc | 2 +- .../x86_mix030_TSO_OPT/test.desc | 2 +- .../x86_mix031_POWER_OPT/test.desc | 2 +- .../x86_mix031_PSO_OPT/test.desc | 2 +- .../x86_mix031_RMO_OPT/test.desc | 2 +- .../x86_mix031_TSO_OPT/test.desc | 2 +- .../x86_mix032_POWER_OPT/test.desc | 2 +- .../x86_mix032_PSO_OPT/test.desc | 2 +- .../x86_mix032_RMO_OPT/test.desc | 2 +- .../x86_mix032_TSO_OPT/test.desc | 2 +- .../x86_mix033_POWER_OPT/test.desc | 2 +- .../x86_mix033_PSO_OPT/test.desc | 2 +- .../x86_mix033_RMO_OPT/test.desc | 2 +- .../x86_mix033_TSO_OPT/test.desc | 2 +- .../x86_mix034_POWER_OPT/test.desc | 2 +- .../x86_mix034_PSO_OPT/test.desc | 2 +- .../x86_mix034_RMO_OPT/test.desc | 2 +- .../x86_mix034_TSO_OPT/test.desc | 2 +- .../x86_mix035_POWER_OPT/test.desc | 2 +- .../x86_mix035_PSO_OPT/test.desc | 2 +- .../x86_mix035_RMO_OPT/test.desc | 2 +- .../x86_mix035_TSO_OPT/test.desc | 2 +- .../x86_mix036_POWER_OPT/test.desc | 2 +- .../x86_mix036_PSO_OPT/test.desc | 2 +- .../x86_mix036_RMO_OPT/test.desc | 2 +- .../x86_mix036_TSO_OPT/test.desc | 2 +- .../x86_mix037_POWER_OPT/test.desc | 2 +- .../x86_mix037_PSO_OPT/test.desc | 2 +- .../x86_mix037_RMO_OPT/test.desc | 2 +- .../x86_mix037_TSO_OPT/test.desc | 2 +- .../x86_mix038_POWER_OPT/test.desc | 2 +- .../x86_mix038_PSO_OPT/test.desc | 2 +- .../x86_mix038_RMO_OPT/test.desc | 2 +- .../x86_mix038_TSO_OPT/test.desc | 2 +- .../x86_mix039_POWER_OPT/test.desc | 2 +- .../x86_mix039_PSO_OPT/test.desc | 2 +- .../x86_mix039_RMO_OPT/test.desc | 2 +- .../x86_mix039_TSO_OPT/test.desc | 2 +- .../x86_mix040_POWER_OPT/test.desc | 2 +- .../x86_mix040_PSO_OPT/test.desc | 2 +- .../x86_mix040_RMO_OPT/test.desc | 2 +- .../x86_mix040_TSO_OPT/test.desc | 2 +- .../x86_mix041_POWER_OPT/test.desc | 2 +- .../x86_mix041_PSO_OPT/test.desc | 2 +- .../x86_mix041_RMO_OPT/test.desc | 2 +- .../x86_mix041_TSO_OPT/test.desc | 2 +- .../x86_mix042_POWER_OPT/test.desc | 2 +- .../x86_mix042_PSO_OPT/test.desc | 2 +- .../x86_mix042_RMO_OPT/test.desc | 2 +- .../x86_mix042_TSO_OPT/test.desc | 2 +- .../x86_mix043_POWER_OPT/test.desc | 2 +- .../x86_mix043_PSO_OPT/test.desc | 2 +- .../x86_mix043_RMO_OPT/test.desc | 2 +- .../x86_mix043_TSO_OPT/test.desc | 2 +- .../x86_mix044_POWER_OPT/test.desc | 2 +- .../x86_mix044_PSO_OPT/test.desc | 2 +- .../x86_mix044_RMO_OPT/test.desc | 2 +- .../x86_mix044_TSO_OPT/test.desc | 2 +- .../x86_mix045_POWER_OPT/test.desc | 2 +- .../x86_mix045_PSO_OPT/test.desc | 2 +- .../x86_mix045_RMO_OPT/test.desc | 2 +- .../x86_mix045_TSO_OPT/test.desc | 2 +- .../x86_mix046_POWER_OPT/test.desc | 2 +- .../x86_mix046_PSO_OPT/test.desc | 2 +- .../x86_mix046_RMO_OPT/test.desc | 2 +- .../x86_mix046_TSO_OPT/test.desc | 2 +- .../x86_mix047_POWER_OPT/test.desc | 2 +- .../x86_mix047_PSO_OPT/test.desc | 2 +- .../x86_mix047_RMO_OPT/test.desc | 2 +- .../x86_mix047_TSO_OPT/test.desc | 2 +- .../x86_mix048_POWER_OPT/test.desc | 2 +- .../x86_mix048_PSO_OPT/test.desc | 2 +- .../x86_mix048_RMO_OPT/test.desc | 2 +- .../x86_mix048_TSO_OPT/test.desc | 2 +- .../x86_mix049_POWER_OPT/test.desc | 2 +- .../x86_mix049_PSO_OPT/test.desc | 2 +- .../x86_mix049_RMO_OPT/test.desc | 2 +- .../x86_mix049_TSO_OPT/test.desc | 2 +- .../x86_mix050_POWER_OPT/test.desc | 2 +- .../x86_mix050_PSO_OPT/test.desc | 2 +- .../x86_mix050_RMO_OPT/test.desc | 2 +- .../x86_mix050_TSO_OPT/test.desc | 2 +- .../x86_mix051_POWER_OPT/test.desc | 2 +- .../x86_mix051_PSO_OPT/test.desc | 2 +- .../x86_mix051_RMO_OPT/test.desc | 2 +- .../x86_mix051_TSO_OPT/test.desc | 2 +- .../x86_mix052_POWER_OPT/test.desc | 2 +- .../x86_mix052_PSO_OPT/test.desc | 2 +- .../x86_mix052_RMO_OPT/test.desc | 2 +- .../x86_mix052_TSO_OPT/test.desc | 2 +- .../x86_mix053_POWER_OPT/test.desc | 2 +- .../x86_mix053_PSO_OPT/test.desc | 2 +- .../x86_mix053_RMO_OPT/test.desc | 2 +- .../x86_mix053_TSO_OPT/test.desc | 2 +- .../x86_mix054_POWER_OPT/test.desc | 2 +- .../x86_mix054_PSO_OPT/test.desc | 2 +- .../x86_mix054_RMO_OPT/test.desc | 2 +- .../x86_mix054_TSO_OPT/test.desc | 2 +- .../x86_mix055_POWER_OPT/test.desc | 2 +- .../x86_mix055_PSO_OPT/test.desc | 2 +- .../x86_mix055_RMO_OPT/test.desc | 2 +- .../x86_mix055_TSO_OPT/test.desc | 2 +- .../x86_mix056_POWER_OPT/test.desc | 2 +- .../x86_mix056_PSO_OPT/test.desc | 2 +- .../x86_mix056_RMO_OPT/test.desc | 2 +- .../x86_mix056_TSO_OPT/test.desc | 2 +- .../x86_mix057_POWER_OPT/test.desc | 2 +- .../x86_mix057_PSO_OPT/test.desc | 2 +- .../x86_mix057_RMO_OPT/test.desc | 2 +- .../x86_mix057_TSO_OPT/test.desc | 2 +- .../x86_podwr000_POWER_OPT/test.desc | 2 +- .../x86_podwr000_PSO_OPT/test.desc | 2 +- .../x86_podwr000_RMO_OPT/test.desc | 2 +- .../x86_podwr000_TSO_OPT/test.desc | 2 +- .../x86_podwr001_POWER_OPT/test.desc | 2 +- .../x86_podwr001_PSO_OPT/test.desc | 2 +- .../x86_podwr001_RMO_OPT/test.desc | 2 +- .../x86_podwr001_TSO_OPT/test.desc | 2 +- .../x86_rfi000_POWER_OPT/test.desc | 2 +- .../x86_rfi000_PSO_OPT/test.desc | 2 +- .../x86_rfi000_RMO_OPT/test.desc | 2 +- .../x86_rfi000_TSO_OPT/test.desc | 2 +- .../x86_rfi001_POWER_OPT/test.desc | 2 +- .../x86_rfi001_PSO_OPT/test.desc | 2 +- .../x86_rfi001_RMO_OPT/test.desc | 2 +- .../x86_rfi001_TSO_OPT/test.desc | 2 +- .../x86_rfi002_POWER_OPT/test.desc | 2 +- .../x86_rfi002_PSO_OPT/test.desc | 2 +- .../x86_rfi002_RMO_OPT/test.desc | 2 +- .../x86_rfi002_TSO_OPT/test.desc | 2 +- .../x86_rfi003_POWER_OPT/test.desc | 2 +- .../x86_rfi003_PSO_OPT/test.desc | 2 +- .../x86_rfi003_RMO_OPT/test.desc | 2 +- .../x86_rfi003_TSO_OPT/test.desc | 2 +- .../x86_rfi004_POWER_OPT/test.desc | 2 +- .../x86_rfi004_PSO_OPT/test.desc | 2 +- .../x86_rfi004_RMO_OPT/test.desc | 2 +- .../x86_rfi004_TSO_OPT/test.desc | 2 +- .../x86_rfi005_POWER_OPT/test.desc | 2 +- .../x86_rfi005_PSO_OPT/test.desc | 2 +- .../x86_rfi005_RMO_OPT/test.desc | 2 +- .../x86_rfi005_TSO_OPT/test.desc | 2 +- .../x86_rfi006_POWER_OPT/test.desc | 2 +- .../x86_rfi006_PSO_OPT/test.desc | 2 +- .../x86_rfi006_RMO_OPT/test.desc | 2 +- .../x86_rfi006_TSO_OPT/test.desc | 2 +- .../x86_rfi007_POWER_OPT/test.desc | 2 +- .../x86_rfi007_PSO_OPT/test.desc | 2 +- .../x86_rfi007_RMO_OPT/test.desc | 2 +- .../x86_rfi007_TSO_OPT/test.desc | 2 +- .../x86_rfi008_POWER_OPT/test.desc | 2 +- .../x86_rfi008_PSO_OPT/test.desc | 2 +- .../x86_rfi008_RMO_OPT/test.desc | 2 +- .../x86_rfi008_TSO_OPT/test.desc | 2 +- .../x86_rfi009_POWER_OPT/test.desc | 2 +- .../x86_rfi009_PSO_OPT/test.desc | 2 +- .../x86_rfi009_RMO_OPT/test.desc | 2 +- .../x86_rfi009_TSO_OPT/test.desc | 2 +- .../x86_rfi010_POWER_OPT/test.desc | 2 +- .../x86_rfi010_PSO_OPT/test.desc | 2 +- .../x86_rfi010_RMO_OPT/test.desc | 2 +- .../x86_rfi010_TSO_OPT/test.desc | 2 +- .../x86_safe000_POWER_OPT/test.desc | 2 +- .../x86_safe000_PSO_OPT/test.desc | 2 +- .../x86_safe000_RMO_OPT/test.desc | 2 +- .../x86_safe000_TSO_OPT/test.desc | 2 +- .../x86_safe001_POWER_OPT/test.desc | 2 +- .../x86_safe001_PSO_OPT/test.desc | 2 +- .../x86_safe001_RMO_OPT/test.desc | 2 +- .../x86_safe001_TSO_OPT/test.desc | 2 +- .../x86_safe002_POWER_OPT/test.desc | 2 +- .../x86_safe002_PSO_OPT/test.desc | 2 +- .../x86_safe002_RMO_OPT/test.desc | 2 +- .../x86_safe002_TSO_OPT/test.desc | 2 +- .../x86_safe003_POWER_OPT/test.desc | 2 +- .../x86_safe003_PSO_OPT/test.desc | 2 +- .../x86_safe003_RMO_OPT/test.desc | 2 +- .../x86_safe003_TSO_OPT/test.desc | 2 +- .../x86_safe004_POWER_OPT/test.desc | 2 +- .../x86_safe004_PSO_OPT/test.desc | 2 +- .../x86_safe004_RMO_OPT/test.desc | 2 +- .../x86_safe004_TSO_OPT/test.desc | 2 +- .../x86_safe005_POWER_OPT/test.desc | 2 +- .../x86_safe005_PSO_OPT/test.desc | 2 +- .../x86_safe005_RMO_OPT/test.desc | 2 +- .../x86_safe005_TSO_OPT/test.desc | 2 +- .../x86_safe006_POWER_OPT/test.desc | 2 +- .../x86_safe006_PSO_OPT/test.desc | 2 +- .../x86_safe006_RMO_OPT/test.desc | 2 +- .../x86_safe006_TSO_OPT/test.desc | 2 +- .../x86_safe007_POWER_OPT/test.desc | 2 +- .../x86_safe007_PSO_OPT/test.desc | 2 +- .../x86_safe007_RMO_OPT/test.desc | 2 +- .../x86_safe007_TSO_OPT/test.desc | 2 +- .../x86_safe008_POWER_OPT/test.desc | 2 +- .../x86_safe008_PSO_OPT/test.desc | 2 +- .../x86_safe008_RMO_OPT/test.desc | 2 +- .../x86_safe008_TSO_OPT/test.desc | 2 +- .../x86_safe009_POWER_OPT/test.desc | 2 +- .../x86_safe009_PSO_OPT/test.desc | 2 +- .../x86_safe009_RMO_OPT/test.desc | 2 +- .../x86_safe009_TSO_OPT/test.desc | 2 +- .../x86_safe010_POWER_OPT/test.desc | 2 +- .../x86_safe010_PSO_OPT/test.desc | 2 +- .../x86_safe010_RMO_OPT/test.desc | 2 +- .../x86_safe010_TSO_OPT/test.desc | 2 +- .../x86_safe011_POWER_OPT/test.desc | 2 +- .../x86_safe011_PSO_OPT/test.desc | 2 +- .../x86_safe011_RMO_OPT/test.desc | 2 +- .../x86_safe011_TSO_OPT/test.desc | 2 +- .../x86_safe012_POWER_OPT/test.desc | 2 +- .../x86_safe012_PSO_OPT/test.desc | 2 +- .../x86_safe012_RMO_OPT/test.desc | 2 +- .../x86_safe012_TSO_OPT/test.desc | 2 +- .../x86_safe013_POWER_OPT/test.desc | 2 +- .../x86_safe013_PSO_OPT/test.desc | 2 +- .../x86_safe013_RMO_OPT/test.desc | 2 +- .../x86_safe013_TSO_OPT/test.desc | 2 +- .../x86_safe014_POWER_OPT/test.desc | 2 +- .../x86_safe014_PSO_OPT/test.desc | 2 +- .../x86_safe014_RMO_OPT/test.desc | 2 +- .../x86_safe014_TSO_OPT/test.desc | 2 +- .../x86_safe015_POWER_OPT/test.desc | 2 +- .../x86_safe015_PSO_OPT/test.desc | 2 +- .../x86_safe015_RMO_OPT/test.desc | 2 +- .../x86_safe015_TSO_OPT/test.desc | 2 +- .../x86_safe016_POWER_OPT/test.desc | 2 +- .../x86_safe016_PSO_OPT/test.desc | 2 +- .../x86_safe016_RMO_OPT/test.desc | 2 +- .../x86_safe016_TSO_OPT/test.desc | 2 +- .../x86_safe017_POWER_OPT/test.desc | 2 +- .../x86_safe017_PSO_OPT/test.desc | 2 +- .../x86_safe017_RMO_OPT/test.desc | 2 +- .../x86_safe017_TSO_OPT/test.desc | 2 +- .../x86_safe018_POWER_OPT/test.desc | 2 +- .../x86_safe018_PSO_OPT/test.desc | 2 +- .../x86_safe018_RMO_OPT/test.desc | 2 +- .../x86_safe018_TSO_OPT/test.desc | 2 +- .../x86_safe019_POWER_OPT/test.desc | 2 +- .../x86_safe019_PSO_OPT/test.desc | 2 +- .../x86_safe019_RMO_OPT/test.desc | 2 +- .../x86_safe019_TSO_OPT/test.desc | 2 +- .../x86_safe020_POWER_OPT/test.desc | 2 +- .../x86_safe020_PSO_OPT/test.desc | 2 +- .../x86_safe020_RMO_OPT/test.desc | 2 +- .../x86_safe020_TSO_OPT/test.desc | 2 +- .../x86_safe021_POWER_OPT/test.desc | 2 +- .../x86_safe021_PSO_OPT/test.desc | 2 +- .../x86_safe021_RMO_OPT/test.desc | 2 +- .../x86_safe021_TSO_OPT/test.desc | 2 +- .../x86_safe022_POWER_OPT/test.desc | 2 +- .../x86_safe022_PSO_OPT/test.desc | 2 +- .../x86_safe022_RMO_OPT/test.desc | 2 +- .../x86_safe022_TSO_OPT/test.desc | 2 +- .../x86_safe023_POWER_OPT/test.desc | 2 +- .../x86_safe023_PSO_OPT/test.desc | 2 +- .../x86_safe023_RMO_OPT/test.desc | 2 +- .../x86_safe023_TSO_OPT/test.desc | 2 +- .../x86_safe024_POWER_OPT/test.desc | 2 +- .../x86_safe024_PSO_OPT/test.desc | 2 +- .../x86_safe024_RMO_OPT/test.desc | 2 +- .../x86_safe024_TSO_OPT/test.desc | 2 +- .../x86_safe025_POWER_OPT/test.desc | 2 +- .../x86_safe025_PSO_OPT/test.desc | 2 +- .../x86_safe025_RMO_OPT/test.desc | 2 +- .../x86_safe025_TSO_OPT/test.desc | 2 +- .../x86_safe026_POWER_OPT/test.desc | 2 +- .../x86_safe026_PSO_OPT/test.desc | 2 +- .../x86_safe026_RMO_OPT/test.desc | 2 +- .../x86_safe026_TSO_OPT/test.desc | 2 +- .../x86_safe027_POWER_OPT/test.desc | 2 +- .../x86_safe027_PSO_OPT/test.desc | 2 +- .../x86_safe027_RMO_OPT/test.desc | 2 +- .../x86_safe027_TSO_OPT/test.desc | 2 +- .../x86_safe028_POWER_OPT/test.desc | 2 +- .../x86_safe028_PSO_OPT/test.desc | 2 +- .../x86_safe028_RMO_OPT/test.desc | 2 +- .../x86_safe028_TSO_OPT/test.desc | 2 +- .../x86_safe029_POWER_OPT/test.desc | 2 +- .../x86_safe029_PSO_OPT/test.desc | 2 +- .../x86_safe029_RMO_OPT/test.desc | 2 +- .../x86_safe029_TSO_OPT/test.desc | 2 +- .../x86_safe030_POWER_OPT/test.desc | 2 +- .../x86_safe030_PSO_OPT/test.desc | 2 +- .../x86_safe030_RMO_OPT/test.desc | 2 +- .../x86_safe030_TSO_OPT/test.desc | 2 +- .../x86_safe031_POWER_OPT/test.desc | 2 +- .../x86_safe031_PSO_OPT/test.desc | 2 +- .../x86_safe031_RMO_OPT/test.desc | 2 +- .../x86_safe031_TSO_OPT/test.desc | 2 +- .../x86_safe032_POWER_OPT/test.desc | 2 +- .../x86_safe032_PSO_OPT/test.desc | 2 +- .../x86_safe032_RMO_OPT/test.desc | 2 +- .../x86_safe032_TSO_OPT/test.desc | 2 +- .../x86_safe033_POWER_OPT/test.desc | 2 +- .../x86_safe033_PSO_OPT/test.desc | 2 +- .../x86_safe033_RMO_OPT/test.desc | 2 +- .../x86_safe033_TSO_OPT/test.desc | 2 +- .../x86_safe034_POWER_OPT/test.desc | 2 +- .../x86_safe034_PSO_OPT/test.desc | 2 +- .../x86_safe034_RMO_OPT/test.desc | 2 +- .../x86_safe034_TSO_OPT/test.desc | 2 +- .../x86_safe035_POWER_OPT/test.desc | 2 +- .../x86_safe035_PSO_OPT/test.desc | 2 +- .../x86_safe035_RMO_OPT/test.desc | 2 +- .../x86_safe035_TSO_OPT/test.desc | 2 +- .../x86_safe036_POWER_OPT/test.desc | 2 +- .../x86_safe036_PSO_OPT/test.desc | 2 +- .../x86_safe036_RMO_OPT/test.desc | 2 +- .../x86_safe036_TSO_OPT/test.desc | 2 +- .../x86_safe037_POWER_OPT/test.desc | 2 +- .../x86_safe037_PSO_OPT/test.desc | 2 +- .../x86_safe037_RMO_OPT/test.desc | 2 +- .../x86_safe037_TSO_OPT/test.desc | 2 +- .../x86_thin000_POWER_OPT/test.desc | 2 +- .../x86_thin000_PSO_OPT/test.desc | 2 +- .../x86_thin000_RMO_OPT/test.desc | 2 +- .../x86_thin000_TSO_OPT/test.desc | 2 +- .../x86_thin001_POWER_OPT/test.desc | 2 +- .../x86_thin001_PSO_OPT/test.desc | 2 +- .../x86_thin001_RMO_OPT/test.desc | 2 +- .../x86_thin001_TSO_OPT/test.desc | 2 +- .../x86_thin002_POWER_OPT/test.desc | 2 +- .../x86_thin002_PSO_OPT/test.desc | 2 +- .../x86_thin002_RMO_OPT/test.desc | 2 +- .../x86_thin002_TSO_OPT/test.desc | 2 +- 1385 files changed, 1390 insertions(+), 1390 deletions(-) diff --git a/regression/goto-instrument-wmm-core/CMakeLists.txt b/regression/goto-instrument-wmm-core/CMakeLists.txt index f7f08694f6a..f1fbcc356fd 100644 --- a/regression/goto-instrument-wmm-core/CMakeLists.txt +++ b/regression/goto-instrument-wmm-core/CMakeLists.txt @@ -5,5 +5,5 @@ else() endif() add_test_pl_tests( - "${CMAKE_CURRENT_SOURCE_DIR}/chain.sh $ $ $ ${is_windows}" + "${CMAKE_CURRENT_SOURCE_DIR}/chain.sh $ $ $ ${is_windows}" -X glpk ) diff --git a/regression/goto-instrument-wmm-core/Makefile b/regression/goto-instrument-wmm-core/Makefile index 30c6f554e88..ebe8d28a6e9 100644 --- a/regression/goto-instrument-wmm-core/Makefile +++ b/regression/goto-instrument-wmm-core/Makefile @@ -12,22 +12,22 @@ else endif testalpha: - @../test.pl -C -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' + @../test.pl -C -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' -X glpk testbeta: - @../test.pl -T -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' + @../test.pl -T -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' -X glpk testimpr: - @../test.pl -K -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' + @../test.pl -K -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' -X glpk testnew: - @../test.pl -F -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' + @../test.pl -F -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' -X glpk test: - @../test.pl -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' + @../test.pl -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' -X glpk tests.log: - @../test.pl -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' + @../test.pl -e -p -c '../chain.sh $(exe) ../../../src/goto-instrument/goto-instrument ../../../src/cbmc/cbmc $(is_windows)' -X glpk clean: find . -name '*.out' -execdir $(RM) '{}' \; diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc index ca68c4f0f7a..c462aa9edeb 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc index 05ca712bb2b..f594dcb042f 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc index aeac7959231..9766fc6652d 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc index 0fd5ceabfb8..d3ff31e1775 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc index c329c5a85d4..4fc62c14b49 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc index cdbe0603878..c230cbee7b8 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc index f230232308b..b1f99d5dc3d 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc index 5e9ca61e645..69678538202 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPT/test.desc index 6c1120c36f7..23f828083f8 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk aclwdrr002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc index 41b2394cd4b..c461011cbc9 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc index 35fc2c0d786..84178307b61 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc index a15da614cb2..808b588f2d1 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc index 9a2cf5aa3b1..2d41523493a 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc index 3b958683ef2..22fab0fbaa7 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc index 314a2dcff8a..8199a7e992b 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr003.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc index 1d41cc01852..66b05ca5221 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc index 038e040e75b..a19f98b963e 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr004.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc index 23ea920c9fc..d19f4ff4316 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc index f67c9a8d2f0..9cf1d79ac64 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr004.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc index 7364c4ef53c..169f18f4d60 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc index 075d4679e34..e47bece8ba7 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr005.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc index ff3745d6148..9d2231f290b 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc index 1bd1f55fad6..9213e08e500 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr005.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc index f8a9d85d909..733769627d0 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc index 232f57c05b2..4e74d5549e0 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr006.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc index b930cf3fd26..7123dda19fa 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc index e8a1e0b9aa1..f22f91f45a0 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr006.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc index fb1948d5900..a5542723684 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc index 73f5ddb5f47..cbdb08c12ae 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr007.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc index 87011f497a3..a8e48525f6b 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc index f88731a37e9..69a3b88aca0 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr007.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc index ba57a84cc42..8dd3c4cef63 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc index ae08f4457ed..3792408449c 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr008.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc index a3ff2bc33b4..1eeb9a05e60 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr008.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc index 33e1df8ad59..9ce00d59d0f 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr008.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc index 8be7f872f86..c2b85dec766 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr008.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/test.desc index 9b8038eaed3..d5b575d1730 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk aclwdrr009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc index 794b694f3c4..dd18bddfb75 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr009.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc index df9c6905b4a..1cbb847e97c 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr009.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc index 71df05a0c5e..6969a07c785 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr009.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPT/test.desc index 7f0ef2386c4..140bd52ac36 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk aclwdrr010.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc index fd0ac58708f..ec6c81f6e47 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr010.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc index 572e8eceee1..6401ec88c25 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr010.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc index 13d8f4f8826..2b3cd8cc874 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr010.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPT/test.desc index bf7988da60d..708b8a18074 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk aclwdrr011.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc index 787dee377a4..3af060d3311 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr011.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc index b62dbfa12fd..fceb7c3c47d 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr011.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc index 13101b008e7..87b4890fe44 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr011.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc index 52c07152ba4..43bef495714 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr012.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc index 2c8b9a0b48b..df658426145 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr012.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc index 120c958f0af..f1020cd974e 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr012.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc index 1341a10a374..457627e7966 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr012.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPT/test.desc index 86d0e3b44f2..3554464976e 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk aclwdrr013.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc index 9d7a7270242..bdb2a8e0681 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr013.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc index 8744db03881..7f197e286ee 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr013.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc index 03b04d8d7d6..98c1882725a 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr013.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc index ddfad30dce1..cf1709ee783 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr014.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc index fb4934e1102..d19027f47d5 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr014.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc index d418147a8f7..f1a7b6e7f41 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr014.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc index e88f7a87a0d..3ee03ba28e6 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr014.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc index 1b782b4b797..869a8345b74 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr015.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc index de5faab00a8..879279ce32f 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr015.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc index 0f9f427bcfd..3f638ddecb3 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr015.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc index 5afe4405c3f..d0db1ea4117 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwdrr015.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc index 66a7eb6b50d..fd9a148c050 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc index 86b8fa95138..e1c544fbece 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc index 28041c3733e..373187f5b7b 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc index b30793a943d..2137955fe6a 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc index 7d21e4b44ff..cc4fb019ff5 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr001.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc index f1d35da46d0..d4b10667f9a 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc index 9fd22e51c4a..a19ade5ab20 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc index 6c4e7dd6e19..5769e0a6da5 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc index ef175868c23..5bc37a5e23d 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr002.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc index 75d7ac0b061..35e1fc40de3 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc index 63ca14e7770..092a2baee0d 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc index 98c5b051c49..988929d09d4 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk aclwsrr002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc index 7dd02f2e247..5906bbe020b 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc index 6bad6311114..cad757df38d 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc index eb48f09371a..7eb3f5a216c 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc index ae77c1550bf..32a47721603 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPT/test.desc index 1f55bc1d82a..4cdeee54f02 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk bclwdww001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc index 1fbfe2fd8cd..73abbcb23ea 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc index 879de116b3b..6fed2e3ded5 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc index f67955cd1ba..12ae38c5ba1 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/test.desc index fa1a1bb94c1..ffb3b9905ab 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk bclwdww002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc index cac07bffd34..73c1bc820ec 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc index 623b418e7f3..256901503a9 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc index 34d96cfa611..1787441c266 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPT/test.desc index 36e35076ef8..a94fbd7846b 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk bclwdww003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc index 3f7e0b77f5c..9d1a4238947 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc index 41f7b266b77..38361ca9d26 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww003.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc index 4a0437083af..e08ddfddebe 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/test.desc index fbbc6809d93..ea55143a4d8 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk bclwdww004.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc index b48d181314e..02a07787de6 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc index 0a80c49b587..2e52d3ba835 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww004.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc index 09153fbf116..94986777d03 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPT/test.desc index 940710220ce..cfeb52e0951 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk bclwdww005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc index 0db04902ae3..5fedfb2160f 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc index 9086e4254fe..d2f03bffc67 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww005.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc index 0bb5c37508e..8fd230b3921 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/test.desc index 825a014ad33..a31d466fdc8 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk bclwdww006.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc index d7659808e2a..0c1c4d5d25d 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc index 5750521ee99..88c981c0b2d 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww006.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc index 5ef2770289b..d6817dbaf65 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/test.desc index 64eca38bfe7..3084c1892af 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk bclwdww007.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc index 2037f649e50..61842b275e5 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc index ae881c6ac02..847a3685b66 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww007.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc index a42d8c8bb91..582e49d22b5 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc index 25dd783cf95..d3e008aad4f 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc index 7891d5d70df..492a713cdaa 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww009.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc index 889e4aa16e5..034ba4c7da4 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww009.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc index e657410eb73..ea199d0b3aa 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwdww009.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc index ab660d45a65..246b59fa989 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwsww000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc index 5a51b5da05c..b0ef38f705e 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwsww000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc index a938cf2242b..dea40b5bb9f 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwsww000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc index c0b2610f6e1..910d79cecda 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk bclwsww000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc index c3345053a79..60c8a07ef67 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk iriw+addrs.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc index 066a61c9765..dad0c3709aa 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk iriw+addrs.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc index 95f3f20f33a..af86f3a6017 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk iriw+addrs.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc index 3bd854b6eae..d2bbae578de 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk iriw+addrs.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc index cfcd9631fb5..57bddab5f22 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk iriw+lwsync+addr.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc index 90324e6e7b5..4fbc0ce7f34 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk iriw+lwsync+addr.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc index 9fdd88b3afb..dce742d23e2 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk iriw+lwsync+addr.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc index 72c0d17b154..d4395bc116b 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk iriw+lwsync+addr.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPT/test.desc index 2676c9f56d5..de8d5f7782a 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk iriw+lwsyncs.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc index 631673dbcdb..9cc513ec21e 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk iriw+lwsyncs.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc index 8b073f09f31..1b538d48a4d 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk iriw+lwsyncs.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc index e8b4cee7018..6b7ef31fb9b 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk iriw+lwsyncs.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPT/test.desc index e338a6ee8c2..34e4f48d927 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc index f9f6b1660c3..620980f8da7 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc index 4f8ee7299ee..a8582346dcd 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPT/test.desc index 5de52405cf7..86b9f214f5a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPT/test.desc index 9f77e8e563a..7babfd8f274 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc index ea15e19e71a..1d31a26657b 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc index 45dc9f02d61..2997e259dfb 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc index 0cb3ec5f594..1b1209aefda 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc index 4d7536f151d..7a443ae18f2 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc index 3f5e68e9ba9..523298c1933 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr002.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc index dd046a94564..f2aef47b1cc 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc index 597f19ec275..2dc051625b4 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr002.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc index f927b83a674..cb093bd2b11 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc index 0e99c1ba770..c861b48b852 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr003.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc index 05083413eab..5a48e472c92 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc index f893ae5c131..fe05d81cfa5 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr003.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPT/test.desc index b3e5e1a4c78..df8484f1dce 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr004.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc index 81acbbbdf64..58a6b8dfac0 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr004.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc index 4bd9c0f860c..50bfe8a43e3 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr004.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPT/test.desc index da0099baa60..fb3dd4904b8 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr004.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc index 3280ec39342..47c4cbdffa1 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc index eaa07252482..f4e082d7f01 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr005.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc index f9f86d5147d..3b26da09aab 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr005.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc index 50f64ea4978..1f43591db06 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr005.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPT/test.desc index f019a7caa35..ebf3e3481b7 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr006.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc index c44f07e9b15..8b05e653927 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr006.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc index 6c6b650a627..799a29472af 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr006.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc index 0499ffbae3e..fdd2cbc778d 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr006.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPT/test.desc index d83ab34c6bd..c77a0be9195 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr007.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc index d3c0c98d3f3..117965e3867 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr007.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc index 7911553c824..856aa61d7eb 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr007.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc index 0d00bf2ae0c..10d0ac312ef 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr007.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc index 295b58d6adf..901f341295e 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr008.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc index 4c95886dec1..6c18c82cf34 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr008.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc index 858ec0fe665..af0b6fdca08 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr008.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc index 31894b91859..3bb7f035e2b 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr008.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc index 440bb7bc5c8..c6c74090faf 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc index 791c32425c7..bd546d3cafe 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr009.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc index 75e0a71f4c0..790916cb424 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr009.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc index a5e2b0fd170..564c47c9c8b 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr009.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPT/test.desc index 81835b91f36..24d8f8c07e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr010.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc index f08def06d3e..6131620d481 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr010.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc index 6d87ec54e4f..4a2e31971c1 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr010.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc index de27aed9b90..a31f3e6231a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr010.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc index ac28a7640aa..4d5a25201b6 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr011.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc index 565d4edd7a0..af29136feff 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr011.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc index 8d64f4f78db..63a7f405a98 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr011.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc index 02dcf54285e..6393978b009 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr011.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc index d9ae7997fd1..01422f1f53a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr012.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc index 2db315f9a92..42d71746747 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr012.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc index 5ee4027aefa..123e8a10df9 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr012.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc index 1669510d0ee..f95d04d3e43 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr012.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc index 1addb425140..d4ad76e3d91 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr013.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc index 3eb8e36ca54..9219eaa9591 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr013.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc index 1357efeeac9..7127e94cadf 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr013.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc index 2fe56785378..9e0026fce42 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr013.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc index fd8b974f6c4..0324733d8e2 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr014.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc index 92e6130c25f..33af8472675 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr014.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc index a54ab0912e5..6d1f6d4487b 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr014.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc index 0d7126741ea..6535cd91483 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr014.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc index 313424b2efa..b46b10fd7cb 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr015.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc index b12b73b7390..3e75d69526a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr015.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc index af430ee04be..cd23b616a69 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr015.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc index f158a13d0f5..3817fceab43 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr015.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPT/test.desc index cf8d75ed097..304d6f273e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr016.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc index ffb7dac88cc..45f1bf42613 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr016.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc index 6f4f6cdec23..cdb8088e3c5 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr016.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPT/test.desc index b9c322f8494..ca0713be842 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr016.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPT/test.desc index b52a572465e..4b44b4eb4a6 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr017.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc index ea43971acfe..a065cbf1ecf 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr017.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc index 7bfc6912b12..147780512c0 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr017.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc index c539e987d30..421fc05ac73 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr017.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc index e8fea7717b4..49ef3ebc945 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr018.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc index e908ddf8a7a..ebfaa611d8a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr018.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc index 1b12831d210..8765a41b6f4 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr018.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc index 23dcb828f46..d84dbf96e47 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr018.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPT/test.desc index 5b30d9142b4..2a2152eac7b 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr019.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc index f797a658d30..ba9fca11998 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr019.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc index 457249b24cc..a4624a2cd89 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr019.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPT/test.desc index 2e59ab8ee58..28f1ab66370 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk lwdwr019.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc index 570b6fd0f3d..7393eac912c 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr020.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc index 2224201a408..782fd955722 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr020.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc index 69829b95412..e8b26546b74 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr020.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc index 680fc350818..cdfa20e31ff 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr020.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc index 6657e948094..9b5f50b9eb5 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr021.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc index ce164235960..fc4a03d4a87 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr021.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc index dbe2f9cca01..4d489f8200c 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr021.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc index f4a058aa7f2..9c59d541c4b 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwdwr021.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc index ead195ec9b5..c3616aa5c25 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/test.desc index 36c8c423512..7853846a143 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk lwswr000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/test.desc index ab952225798..1a7306c311d 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk lwswr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/test.desc index 4e25ec178f3..604daf2cede 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk lwswr000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc index b12eb36665c..04ec55942f7 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc index d2670c15792..0ea5da3ad8e 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc index 25b83de0d0e..ab2ddde05fe 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc index b3af053843c..b3564fb65df 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc index d9ca2a9ae08..e044865b15c 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc index d9403b41c5f..d671e080ac6 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr002.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc index 15be802cacb..c0c69302286 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc index 7b18f6458d7..1b88d96e606 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr002.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc index cce94398ed8..bf3e6759b92 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc index f0f5ee200f1..0228cc379d4 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr003.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc index d8bd88d59f3..5d51062916f 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc index 8ef55d18ee3..1e17d8746ae 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk lwswr003.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc index 133f637b340..ec95e809e62 100644 --- a/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc index 1c02752ba49..1a9743efc4e 100644 --- a/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc index 585c130e582..39bbd65d6e0 100644 --- a/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc index e4c169b000c..dac331d5f80 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc index 4ead19f6f58..00ac6caf521 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc index 33f33543a71..770dfa0c1d0 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc index 1b71a7a57af..4fe1916321c 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPT/test.desc index 396c71d6b20..de3cf844ee1 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc index 058f38f7449..8a13c06f2b0 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc index b50f9128d11..6e4831f900b 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc index 51697e00387..02021819d4c 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc index da0fb75aadf..9f9eb52aff9 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc index b4e1a7277e7..b6341e5f8e5 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc index cb51aac97a4..77e027f8ff7 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc index c513e0b7c7b..bad9bc22afd 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc index f3b77431e18..f8ec4a8bb50 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc index 289700a86af..e6e132c9821 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc index 4b4ef3b2739..39353ac85d7 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc index dad1701e00e..91ab042c1a0 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrr003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc index edc6f33f1c1..f182f0f02ef 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrw000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc index d1067e25b43..5419daa4b1c 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrw000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc index 489f050f377..ec5c8b715ea 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrw000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc index 02720a957a8..56ef2726389 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrw000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPT/test.desc index daa4eb3f66a..133038b5564 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrw001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc index f26c5dafe14..e12f8343a3e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrw001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc index 419e8504ef2..0c9ae24c47d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrw001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc index b674d646036..36bec6f4e06 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrw001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc index de24c580c4d..b4a026fc31e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc index 61801f5d596..b54d8b44095 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc index 1e5eee16881..d337d769304 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc index fbe296ce269..e485fdaf1a3 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPT/test.desc index a4df03c059c..4369cc59d54 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc index 120cfcb3b92..b0e385e6637 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc index 24a15578766..34c3c20e077 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc index 907b1001526..1c26f5803ee 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPT/test.desc index 133b832157b..7b890ebc1f0 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc index e946bbaaebe..3351a46f125 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc index 32f17bd5248..12bd8657158 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc index 9d89fa84ffa..158f1f7740e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPT/test.desc index db2548c37cc..7348801aa9d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc index cc38afa2740..c71d66aabec 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc index f151c16567f..8e9c18e06d9 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc index c8e9c65c832..c331954d200 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc index f590b5c06df..a1b25aa7e28 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr004.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc index 7630fc37c67..4412f80ac52 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc index 46973c89340..f00fe6e71e9 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr004.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc index f6c9c611c0c..ebb54b3da46 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc index 86130489fc8..af2577668d9 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc index d7cc3b6b686..b8f4e8dcc21 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc index fe53631c2b2..130adee2d84 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr005.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc index 266b639ae5c..f61ecf26383 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPT/test.desc index fe3082b005e..6a05151f995 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr006.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc index eb282b486b3..4e1de010ed8 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc index 0f8d0af3c2e..f31b0a4911a 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr006.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc index a28a14cde4e..902b077723a 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPT/test.desc index 5d30fd8b32e..5e74395cfbc 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr007.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc index 3ffaa2cfcfa..c74b0e48042 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc index 045d3baa82a..7295281871a 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr007.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc index 27ca65ed289..c3832e875fc 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPT/test.desc index cd3a7ced767..4d13a6931b7 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr008.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc index eb632057fd8..53a3de926fc 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr008.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc index 55d02f60b8a..4e25e6aad42 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr008.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc index 8ba963a5e76..aa0895f8a9d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr008.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc index 89ef0120660..a4499d816ed 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc index c59e4ff1dfe..fc91b166573 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr009.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc index 49774b96250..9dec913cf0d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr009.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc index d1e9cd81995..837866a132a 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr009.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPT/test.desc index 044f3997484..18bb50deb1e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr010.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc index 1bc2d1cc9d9..34841a46dac 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr010.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc index ba992fd4217..34ec3eae79f 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr010.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc index d8de708d5c1..e9d80458f35 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr010.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPT/test.desc index 1dcaf8cf2d6..557f2f57fa0 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr011.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc index 17b3bc847f8..1ecfab58f1f 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr011.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc index 6c60a4cf2a8..adae0483b3e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr011.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc index 19fd2e58afe..317f850f9ce 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr011.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPT/test.desc index 85dd1a753f9..6d2c2927168 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr012.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc index 292a972812a..e2325895ae1 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr012.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc index fbb7d37fa53..ed917252a27 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr012.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc index d53a72079e1..d18d2a90b71 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr012.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPT/test.desc index 78e5676c4fc..879ecf96200 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr013.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc index 9cff557cdd2..ab4d9c0f4d0 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr013.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc index ace7de803fa..2d7815beee3 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr013.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc index 298a6caabca..46e8f62ae00 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr013.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPT/test.desc index 46a523752f5..a2264116982 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr014.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc index 54f9617879e..3488ae2986d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr014.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc index 28e57f14462..bb3a5df823d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr014.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc index ba780a01474..265b0ae759e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr014.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPT/test.desc index da386e06a62..6133f7f07ce 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk podrwposwr015.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc index 49d8155c42e..a79289abfca 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr015.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc index 00558dc876f..865380c70dd 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr015.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc index b9edbb35ea2..e48f4354022 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podrwposwr015.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc index 6d7807b9b06..4df41b0d8ed 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc index ae64c0226c3..66763aa3e90 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc index fa7fd1fd100..035737ef01f 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc index 2182a7fb2e2..2e3191e6152 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc index d9c3e7e5c17..31bee5edb55 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc index 8c99a6db49f..46466001aa1 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc index f7c2088eb90..c1bd41aedd6 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc index 7a8ce1cefba..d2ca0cf6741 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc index e1a4e708b1c..85093d39154 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podww000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc index e99f7d3a6d2..44ae03a40e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podww000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc index 6d6a8fe83f2..4214449d1c8 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podww000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc index 492fb9b197b..a00eba8de11 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podww000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc index 43db791c6b3..a3c755bf5c8 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podww001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc index 0f611bced15..d1e7017925b 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podww001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc index e18974c0d3b..89204498778 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podww001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc index f788dee22cd..57e64eb9e0c 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podww001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/test.desc index 2d3031f3ee6..daca903c10f 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk posrr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc index c97c97619c2..be1e43f0e19 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc index c17df188033..d69d86977dc 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc index 837eb18bf48..971070ad957 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/test.desc index 42f94d98d79..f1420a6695f 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk posrr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc index f1791af12d2..2271dca0174 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc index bd92b319364..c7976a83ae4 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc index d1e0c67d773..bfec5d2e24b 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc index c6f045fcf4b..4ff5ee2d396 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc index 6f5cdf902c1..1e4524f699c 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc index 10de9c4647d..07be90cb660 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc index 58f25a03557..aba83d254ce 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/test.desc index f0008d639b7..1e90819f15c 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk posrr003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc index 9425f9027c6..647ba0f1e7f 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc index d556e58b435..5aaf8a79a22 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc index 0acf4c01bbf..d876359835d 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc index 70d8a7ec496..50735a02ec4 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr004.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc index 285370bb405..0293b4bdc5c 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc index e2de83d3e9c..b7fa89cb7f3 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr004.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc index d3fc859beb3..5758a24c854 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk posrr004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc index 29b2360ed30..102c3b7d4a6 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe000.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc index f37c179e911..973f23666ba 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc index a5d0dbd29ea..457ca37f62d 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc index 7b184cc5ddd..48b50a5db59 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc index ee81b6eceba..2adcbb66a22 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe001.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc index d616ca6cb46..6c1fef043cc 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc index 7a6c35d0432..e60e60c515e 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc index 1955caad092..931384cb2b9 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc index 61059162451..e14cf48be74 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc index b0f6d17a066..ba2269fba13 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc index b048091fb70..822d405601d 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc index cf990747fa8..af92120c7ee 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc index 89dbdd3377a..92db5a56ee6 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc index 730c00c8777..0dd72743f36 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc index 02acca7379c..8b29c670c6e 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe003.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc index 01ce3eff620..59bb18d9748 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc index e8d38e9427f..c51c8e3255c 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe004.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc index 6c1845b1bfc..02a4aa970a5 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc index 03f9f5eeda5..df4f84aa9c3 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe004.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc index fd2e3ac8b10..09abff7f8f3 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc index a00ae005e72..33eb85a40e6 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc index 46b4b5a0ec1..a3f0ada2541 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc index b92f0470f3c..acd45557871 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe005.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc index 798e9838aa7..dc43f9b31cb 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc index 4a78b1a26be..2ab52d59eb6 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe006.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc index 019ab1cfee7..e0d61ed8d31 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc index 719d54b7d48..98443cd6b04 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe006.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc index e5d1c1423a9..cea6257a845 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfe006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc index 18887415c82..446e8af9955 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc index b8902750eea..3740b76c451 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc index abd84d14a1c..c3ce6eed5fd 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc index 170c10d984e..507962bb724 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc index 2fe938ebe00..346976839cb 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc index 97bf497420b..837278af8e1 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc index f718c6fcaed..401de42e4fd 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc index 36a65b7453a..fa0c44cec0e 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc index 942adea2efd..5d0d3f1ebac 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc index 0d72d295015..0f79605d893 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi002.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc index 3fe46556a10..28b737a325e 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc index 26156cba6bd..55b0ccaf9da 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/test.desc index 14f7ce420ae..6e9c35e25fa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc index 059e0b72889..68ce1dca9aa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc index 8b40aca1475..2d08a19bfc6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc index d4b3b3c5c80..a7abcb9cef1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/test.desc index e1c1d565ae0..240c29af42c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc index ff593e48554..968944a3d12 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc index d1bdd758e60..abbf9965264 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc index 252a39674e6..84953281aad 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc index 035e20ec58d..caedfcdde82 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe002.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc index 4ad2d7f9e57..60fc34c4c66 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc index 7d46b7a0335..b05a5689114 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc index 6a1ef6208b7..1875fe78857 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc index 60b17795d3c..e88cd29ccfb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe003.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc index 437dfeb6e75..1075091e4ef 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc index 4ac1d3e510b..5527248cd31 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe003.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc index 4a2201f85f0..d66e5d92de0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc index 5fcfa11e9f4..3bbbfc4b7e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe004.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc index a3815ad1b08..5569c08ebc3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc index 10c92060e4d..7a24ce89ee8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe004.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc index aedb08726ea..777e21c9da3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc index 32f63498450..5547352dfbf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe005.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc index 35c6688d8e1..027fa07e5f7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc index d5eadf8fafb..05c7f5941ba 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe005.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc index 2834168bbe0..2574999bd00 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc index 901081067e3..66cbd086d87 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe006.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc index db3e7a73e68..0e3dda55ab2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc index 208054821ea..09250d20b3d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe006.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc index 016ba50e925..d9a3f80d2fc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc index 5c5a9c6d047..202a7888a77 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe007.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc index 7ab14277274..6a74e7491ca 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc index daf00b20345..89a79909424 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe007.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc index 572b8b66c77..7aaca2e899f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc index 56e81078d02..8f26673b330 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe008.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc index be7672d11e6..553d3c45c62 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe008.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc index c3a39d969d4..0369509369b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe008.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc index 3efef04b349..a53a1342f30 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe008.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc index 8fdb500edd8..d901b2dd1d6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe009.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc index c1d5f6be8d7..a3356e9b580 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe009.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc index 89335c34268..8817f3da470 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe009.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc index ee23e17f422..aa84f946d70 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe009.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc index 99042c00668..a81eaf2b91c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe010.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc index 8f7456a4714..a11223c854a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe010.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc index 930648bf5d0..cd7db6ab0b9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe010.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc index b6f55eac688..8597672d257 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe010.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc index f9de8dd56f3..0149b47a053 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe011.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc index f6cb0ce0340..673765f734c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe011.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc index 8460917640c..da87de4be0c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe011.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc index 948aeb35339..52a9f083352 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe011.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc index c128694ede3..eec1a7516e6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe012.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc index daa69c77c1e..d66ac14ff70 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe012.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc index 0a0be48843a..6a5954ea472 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe012.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc index cee4b1d5569..e3af18b3e32 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe012.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc index 273503d17cf..10a7826a6a4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe013.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc index cf36304e307..0c14440b4f0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe013.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc index d092abe379c..9ab48e0e88c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe013.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc index 22e2a70f6a3..9e353b096d1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe013.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc index 6be3289e8ab..e668a6234f9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe014.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc index 4f8d40a60a1..2828b41e5a0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe014.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc index 5de07fe1e1b..0efb15a404d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe014.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc index 3eea17d25c1..4e17a710d23 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe014.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc index c35281235d6..1f685787876 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe015.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc index 40dfa9fb029..878b1e3c113 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe015.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc index 446cc025ea9..233942844cd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe015.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc index 0f897bb6314..2ec65817513 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe015.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc index ad5de1c7f2d..a4c73cb5766 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe016.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc index de0230863eb..5ed02cde4f2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe016.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc index 55f8d666e7d..5e8e2817db9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe016.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc index ef01fa87357..5e9b5010b51 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe016.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc index 579205e7eea..1c12813ca1f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe017.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc index 073ed0c796b..6adde33e3a9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe017.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc index f9fa80ab520..4193e5fc02a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe017.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc index a67e27f1606..ffbc5668de7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe017.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc index fa32a07d206..2781fdefde8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe018.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc index ab2ff3497f3..cba79051b81 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe018.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc index 1224821e8ab..8720f837bd3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe018.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc index 8afe0ffcbc9..13acca85c12 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe018.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc index b34c0a51386..0592f036616 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe019.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc index 92d3ae69028..a6dec2ce8ef 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe019.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc index 311771e20fe..f6f6a75b358 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe019.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc index c86dab48805..0aa65915d87 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe019.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc index b8a7e4b2cca..b2a312d7a10 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe020.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc index fd074b3a2c4..238298a0c11 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe020.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc index 6406138c6b9..dfe39a6c716 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe020.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc index b8b1cc8d169..695fe195823 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe020.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc index 285a2c827c6..7b3d9fdd5ee 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe021.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc index 7b34de3a67d..3032c8552a3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe021.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc index 97b363dd293..5f0be896879 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe021.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc index 4cbc4b499fc..99fd7723446 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe021.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc index 364d3ee08bf..8b9a93679b4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe022.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc index 5b277cb9910..2ce159e83d7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe022.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc index fc224d70f1c..d21743cf1a2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe022.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc index 8eac0237ff1..f2103003983 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe022.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc index b5f8d873a3b..35f4fcb4102 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe023.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc index 5c007cc0d92..5b4b4e5838e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe023.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc index 6a9ee81b314..f11b59e297a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe023.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc index 5b41beed3b1..862265668e2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe023.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc index 319e027ba86..2926e0d6abf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe024.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc index a21f814411f..830ded5b101 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe024.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc index d747c0c98ce..b80037db597 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe024.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc index 5a0c6e067f0..39ac8bbc0da 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe024.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc index defe8f0ae76..59f40825e35 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe025.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc index 0f4aa8c7b64..807a34dbd70 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe025.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc index c949b8b92ed..92212999944 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe025.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc index 2ad15c0be83..e6eed222c22 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe025.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc index 9cd907687c5..e3fce649c54 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe026.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc index 4607fc25344..aed6b444360 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe026.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc index 8e995b4fc68..232e40464d7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe026.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc index 35466976d95..d4beb230f0b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe026.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc index 034c33fe502..a359d356eb9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe027.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc index 29cb693e496..a2735820092 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe027.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc index 73ba793e222..c28ae559ab8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe027.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc index acd20502f12..438aa4a7b2e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe027.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/test.desc index 5c9940eaadc..1d36072c7e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe028_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe028.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc index 5f5a3ea7e76..1a23b29b121 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe028.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc index e1ec158b08a..028c3eb6f4d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe028.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc index b6fa4e93ca0..14e34d68644 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe028.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc index ee9677d63f1..7acc895641a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe029.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc index b2804097c85..08f981d8746 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe029.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc index d28a73ac3b0..2c776835615 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe029.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc index 97b1dfb9adf..34c9594e332 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe029.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc index 5eb67356de3..a355589f5cb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe030.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc index b9c725fc71c..046aab63d56 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe030.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc index c3abb79b9cf..291cfd19337 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe030.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc index dd22548ee08..eb3169afe73 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe030.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc index d66d70a4aa2..a4134a8806d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe031.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc index 596a15cf9ec..050396f6a65 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe031.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc index dd68e1bdfb5..f6794ef12ca 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe031.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc index d6c9f80de67..a5ca148946c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe031.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc index 392ac327af5..6b34e4e763b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe032.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc index 97dd1a7239f..24878f0151c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe032.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc index 3bf59fedd40..5d980322a40 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe032.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc index a7d458ad3ab..432bb612d56 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe032.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc index 5ae72152148..eb1f5112539 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe033.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc index ef9b3d1d197..156fe6fc28f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe033.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc index d125dfb7fed..8399defc34a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe033.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc index d93bfa51cf2..6e9084ca047 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe033.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc index 415d4c05c5b..b6354263b3e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe034.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc index 2bef6d52880..e7c7db19c92 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe034.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc index 5bbc7091245..b7822054ccd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe034.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc index 13b8e42b022..f42dbf08322 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe034.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc index 92256947154..552b94e63af 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe035.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc index e372bf2bb7b..7cc36f04611 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe035.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc index 067eddb87e7..d2d503f3d6f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe035.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc index 4b5c5c80e5d..e3271875608 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe035.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc index c4ca5328029..04c074f7692 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe036.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc index 4330c62ffeb..77c3e613978 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe036.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc index 63b3c1bdc70..ea65c6e9786 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe036.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc index 5b311991045..063d0ca2a50 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe036.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc index 73f22d96d93..8ed56e50dd8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe037.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc index 7a4729ed630..4e426c94c69 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe037.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc index 4c462f457f6..3d9d0784382 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe037.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc index c6b48e545c9..aaed680a10f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe037.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc index e8b68b6925e..ce8581f6bf3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe038.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc index b9b71d8c152..2ee7d4db78a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe038.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc index 54926a2cb2b..fa71497682f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe038.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc index 4567ce9bad9..8520dd44b92 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe038.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc index 3bc9470b4f2..3fc3cbb829f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe039.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc index 24f7c6976b6..9cb9d2ee6d7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe039.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc index 54f3ba07dfc..993012cf295 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe039.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc index e26b8c655ee..83608819866 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe039.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc index f555c310cf9..9f31a1dc73f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe040.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc index 8abefe61147..b44ff487c05 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe040.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc index 0867f32673e..51011af7492 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe040.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc index 0364a86bdd1..3d25c72ccc3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe040.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc index 62deabb7f0e..5157627161f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe041.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc index cf4bb68e243..b57a46b8ef9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe041.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc index 490b0f16620..c8b28bacfff 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe041.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc index 773e6cc5225..f25ffb91f07 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe041.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc index 80b711aba32..8d65d899586 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe042.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc index fcb16eeac00..bf7230db670 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe042.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc index 523a6811f77..f50d05ae760 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe042.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc index 82e55f3f543..b6615e48ad4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe042.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc index 9daaba4aa7a..48e83839d1d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe043.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc index b57bc7ccac3..326e4dc2cb1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe043.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc index 713848ac72f..ad39b281370 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe043.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc index 13a75e6de03..3becb4f12b8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe043.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc index 331a18b934b..a3420cae5e5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe044.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc index 8f1fb25ba0a..07aa17a9e2c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe044.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc index bfeb13c910b..a472d0d3551 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe044.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc index b8549ccc123..1887a0dc8f0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe044.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc index 595fa825d55..764ee354633 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe045.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc index 87f83241863..9578640ae16 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe045.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc index ea3798d73fc..704bd33281f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe045.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc index 98f9b5b93cc..68ae6016790 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe045.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc index 848f1e09f44..21631764323 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe046.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc index 76664c1d16d..3426e75dec0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe046.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc index 0741d1a42b1..82acccb25bc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe046.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc index 765bd3422d4..ccfe7658326 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe046.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc index 2bdbc7118e6..68aa615dbad 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe047.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc index 6184b5a9e41..04b796e00cd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe047.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc index 563b5b57fa7..e70bbaa2e74 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe047.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc index 9c72aac8ecf..0906742b9d6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe047.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc index 40daa6ac1f6..8120e89e2d1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe048.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc index b5f09732ae6..a22eba6e736 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe048.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc index a5bdf39478d..e9b6f0e2ee5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe048.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc index fb3437ea4d4..2fc93c8b9f2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe048.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc index 2c29e4ea2f8..acbd687de18 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe049.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc index c2562c5270d..d4cddcd6011 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe049.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc index cbe3374802e..d3854715396 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe049.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc index b232630c5e8..5bace2a83e1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe049.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc index d33d5da1465..d45e3453d60 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe050.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc index 53a59b93714..cbe363b3921 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe050.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc index 06594a3e6d4..0fd04dcddb9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe050.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc index b5ce877493c..50ee66c1085 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe050.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc index 4ce0e5100c4..25e66e458d1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe051.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc index e073626684c..ce05fc1ee38 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe051.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc index 2e3582a67ab..cef32f61865 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe051.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc index c6bebff354a..fdc4103b284 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe051.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/test.desc index a24aa5e9e3a..6d32683a488 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe052_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe052.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc index 075a422bb95..db56677664a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe052.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc index af946510e0c..8686689a123 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe052.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc index edf23906b2a..b176b0d0dfe 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe052.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc index acf70c6ca7f..b147286915d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe053.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc index f30d7b3bce8..6e4c3a01f2f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe053.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc index 211d233a6f9..744fd9264d1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe053.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc index 3b682102df4..ee33cc79034 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe053.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc index 0e18fc96cfc..b3040faed36 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe054.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc index 3bdee45ce48..9e3e627807f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe054.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc index 136b2acdb42..80a728990e9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe054.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc index a60a0100c0f..0a24ee90747 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe054.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/test.desc index 9431d87a222..3e275d7935a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe055_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe055.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc index 55653558df4..fb0b46f4f41 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe055.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc index 8d63c678041..8a9249f5228 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe055.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc index 641dec4b057..866cf34e8d9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe055.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/test.desc index 15d6d1ef62d..2ddade81351 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe056_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe056.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc index 0f9cf8eb560..09ba27b29ec 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe056.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc index bbc8b3a75fd..402c17f5304 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe056.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc index 797afc6043e..46c25980657 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe056.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc index 7c8dee57ad7..3cfb3c30b56 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe057.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc index 61ff1b6eda9..fcb05ead47a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe057.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc index 69e928b896c..aab9434bc27 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe057.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc index 7622d46043d..6c889b2be16 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe057.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc index 3bfae6bc80f..2ae07590656 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe058.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc index 8cea446310a..8b865142df1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe058.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc index 252be17105d..2e688c659f7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe058.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc index d1de933bb5d..c92929f7a33 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe058.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc index d7921ba71ed..688c31c177a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe059.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc index 4cdb6fd93c1..4043db022d8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe059.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc index 70d9835dd6a..16e98c47110 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe059.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc index 7ecc77d712a..1d0f90f5bff 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe059.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc index 75e06cf4eaf..ce3cc297993 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe060.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc index 458bde00692..f37087e5022 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe060.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc index 21de731f8b9..f4447cf8127 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe060.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc index 7c8365300c5..c4492a944df 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe060.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc index 43cca2937a2..1236ee71028 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe061.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc index 8b0d8adcd10..8039c05595e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe061.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc index d591807ac81..d11fe60aabf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe061.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc index a3a22e69819..a5a5c175142 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe061.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc index 252cce8d8a0..5d90582ddf0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe062.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc index bf0fce3d0d9..770012a38d3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe062.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc index 379e7035ca9..bd8a3469407 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe062.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc index 3432c8edcdb..98e24aeae5a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe062.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc index 28253d07381..523c5eb9eef 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe063.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc index 08567f4ba11..c9fada2ce95 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe063.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc index 9cae55e498d..da6dd0903ff 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe063.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc index b20846f2c4d..4f2b67509c7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe063.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc index 0a87a1237a1..41254a0f4ec 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe064.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc index f3b74da5e76..aae9f9cb336 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe064.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc index 5aa8dfeb8bc..111a8ff070c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe064.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc index 899a55c7ad7..30ab9ceb5d3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe064.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc index 2bc3a2350a8..256c7b2048f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe065.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc index 13a43666c43..144c6e2c928 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe065.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc index 00bf4f9807a..d349ba16882 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe065.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc index 9a5b355e881..e4e8c738438 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe065.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc index 8964da80e0e..3d1aac89f99 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe066.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc index c2a2ad18b12..6ff7c3d1df0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe066.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc index 0b7e6d059d3..51fdacc8561 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe066.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc index fca1bac449c..ebf1184323b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe066.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc index 4c87e8651e2..cc815680319 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe067.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc index 36ced27e5da..0c79925ab76 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe067.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc index b54c93ff13a..2eed07b44e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe067.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc index e11b0892aff..aa8fb078382 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe067.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/test.desc index deb773beb5a..8e94823d4a7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe068_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe068.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc index d7310199151..f4be3392d71 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe068.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc index d74a9aee87c..1ecc016b1c8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe068.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc index 7c5201f111f..710fe57ee89 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe068.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc index 0ffad1e9266..82f6bd68718 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe069.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc index 082130769b8..57f19c3addd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe069.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc index e717c4e7e7f..5af01df99fb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe069.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc index 9d485831d2e..7a811f2369d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe069.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/test.desc index 68ee4a5473e..4aee54dc60d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe070_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe070.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc index a9a4bb01abd..08cc5ba9f68 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe070.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc index 1f52d978037..66bab3c772e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe070.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc index 346527abf72..d489eb1b50e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe070.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc index 8b2be9027b2..43548df4b07 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe071.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc index 599b48b82d9..5d1e1912c9f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe071.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc index 13f5706e1b4..592144ba965 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe071.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc index d73a041a4c6..9d4d39aa68a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe071.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc index 9e6d518634b..332e3246a76 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe072.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc index c7e497a68dd..39755e84af7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe072.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc index 7350f54f6cb..764b9e1fa14 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe072.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc index adf2b649fe3..a98156a3437 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe072.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/test.desc index 76af374abf1..c4bc6e99599 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe073_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe073.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc index 5e56ed90ab7..63c7155f635 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe073.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc index 92ed6d4f1d1..9f33093665d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe073.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc index 39d95f0bee2..c3632e5ede9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe073.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/test.desc index 95b55ebb20b..d4091e68d30 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe074_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe074.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc index 5b21745fde3..e4c8e85df9b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe074.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc index d7334ca2846..f20cba3fd1f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe074.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc index 622c9afb4b2..50eb34c117c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe074.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc index dc993bfba67..ce4cac77346 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe075.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc index 4c5a184025e..6b669d81169 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe075.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc index 6ab1b90ec1d..6b06cf58ad1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe075.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc index 5a78cdd0c9a..20dee034a69 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe075.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc index 7dfe6914b35..f0adccac979 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe076.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc index 055842799de..608453fd289 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe076.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc index 6f6eb5d35f1..6c786b60d92 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe076.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc index e71f6e8d21d..abee4edb924 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe076.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/test.desc index 0222abe8c67..2a3ae30a618 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe077_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe077.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc index 4af5e744765..cc8959ab22e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe077.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc index fb8672fb12d..5c6c45e5de5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe077.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc index 3e6f1941951..43ca3bf0884 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe077.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc index e61199effd5..92b301a4dc7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe078.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc index e4f60193648..57d4ccbc548 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe078.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc index 8ced80dc335..e362c01a98d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe078.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc index 08b2fa90943..5e941819e63 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe078.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc index 5b69846ff4f..a48dc939b1e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe079.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc index d2f8573efd3..ef9a95c75f8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe079.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc index 679ee729358..b80b539004c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe079.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc index 6d83375d7f6..2f1d2a70d20 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe079.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc index 2e35cfae545..1aefc4522bd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe080.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc index 855c7154b0a..50efd167935 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe080.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc index 8e28f4a7deb..14c344c920d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe080.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc index a5c40df20fc..1364ea9a06e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe080.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc index 5a4bbfba858..b8cb5b4bc3d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe081.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc index 347fd56c667..9f54c6166d5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe081.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc index ec8387e9886..7827a5930ed 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe081.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc index 50ae929621d..dd2a477965f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe081.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc index e76a8940e12..a66215bcd13 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe082.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc index ca916a44483..93faffc1057 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe082.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc index e1df89dc445..993355d2ebe 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe082.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc index 139ba607369..35713bf3050 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe082.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc index c58c84bd6f2..d3e7ed34ec9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe083.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc index f44c25d6997..1e266d89b59 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe083.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc index 0f17f04de1f..5548c7777e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe083.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc index ea4dc28e8cd..09a6175d8fe 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe083.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc index 40679ba7301..2221482140c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe084.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc index e1b7996159a..2adcb09c5e8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe084.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc index a79611663d2..1f1832f9040 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe084.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc index a3ac38e5b35..8b5ee0e26f8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe084.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/test.desc index a3f0c4237ac..ae53710856a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe085.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc index 1a3a3a0f317..09ca9252ca2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe085.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc index 99e9c179ee0..6910f51e84f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe085.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc index 742596ba70f..d8ac2ee4418 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe085.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc index 9578dcb4dc2..b36ab18f966 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe086.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc index 1f8c2cae38f..371548aafc1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe086.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc index 43f1bd00d5d..db44ea447d9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe086.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc index ac2d9bef081..91f9f4d37ec 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe086.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc index 63dc94561e2..92a009ab7fd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe087.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc index 927672abc1a..64d822ae1f4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe087.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc index 83891c78c66..9da4cc88f3d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe087.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc index 85ad6ba6eb7..3a572fbd51d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe087.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/test.desc index 30d51181227..f01e381fdd7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe088.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc index c424fa8f4bd..7b58ed90cde 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe088.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc index 1c7037aba01..328ddd41a5b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe088.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc index b586652da14..7983d733c5d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe088.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc index cea504b47da..ce8ec9a043f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe089.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc index a6b9252ac7c..059c96e3f8d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe089.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc index edb2a5dbd17..eddd7eb49e2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe089.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc index d0718969b60..fff5a46b718 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe089.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc index ff72d905930..0d7b6d5962f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe090.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc index 8e8df9588df..7562cc1d8a9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe090.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc index b3cdbe79454..a4ad039aaee 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe090.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc index 8d8b3e79e10..a57fdb41923 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe090.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/test.desc index a7bb3191ba8..f5e7fd415d2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe091_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe091.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc index 5346eef7617..530b7401d8f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe091.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc index 863b078e4f9..3176e9aa7ac 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe091.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc index aa8ef372e15..2f699a35599 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe091.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc index f72c306057c..f24fcb7ca8c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe092.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc index 317bd5b6711..b9944282a93 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe092.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc index b9141a355a1..e1958d0b305 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe092.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc index bf53a335066..53b7da949d8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe092.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc index 1946a5721a3..9abf6fe7e5e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe093.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc index b3db1da246e..7d1a8137163 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe093.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc index 9d6c80b0936..971c35c2974 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe093.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc index 81ede22e555..cfc42407268 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe093.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/test.desc index e4dcbc2242a..7e693ac8c3e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe094.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc index 87a41a08fe4..5391097a684 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe094.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc index 18ea4a98a89..497e790fba7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe094.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc index 66883c47272..c1cdf6faca8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe094.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc index f3f44fa7d17..640a3dba6ee 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe095.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc index ccd42138b47..4a4c285e1d6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe095.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc index 5a6dcb2ce3b..3116686b96a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe095.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc index 9f4394f9232..c982708c927 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe095.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc index fe78c1d4596..c7714fce4ac 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe096.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc index 5a9ac9d95db..a1a28631154 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe096.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc index 1e3344ebe88..793a1add431 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe096.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc index 109710e3f02..d28a4391c59 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe096.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc index a5df368d5f3..4dd802aa87b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe097.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc index 83ea190a8e6..07e53e064f2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe097.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc index 9e908fb063c..39b0ebda56f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe097.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc index 95d16771159..bacfdb0cd8e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe097.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc index 92104671610..346a5d2b7ff 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe098.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc index 29a83e54237..3cc4b7e9556 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe098.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc index a5db7c0f662..b5373446886 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe098.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc index d5ae5d4b928..9efb7a7b907 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe098.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc index 9b282bb1dbe..956b183ee28 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe099.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc index 26d5a389970..b69ffa36b91 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe099.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc index 66293d798b3..21e72157edf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe099.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc index 844c630c316..3465691e3ee 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe099.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc index c7a8273e69b..f7599489bee 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe100.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc index cdf3b25eaee..2eda50d3359 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe100.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc index b136edc1a89..9ffbc99cf5e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe100.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc index 34dd465bad4..4e026f8584b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe100.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc index a1b74eb5c8f..f90aac6137d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe101.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc index 9b4a558ebe1..78e5193a1d7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe101.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc index f6a7a18e1f0..c69c5b40a23 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe101.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc index 8480ffd97f0..5610da67fae 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe101.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc index e3a71b8a6dd..75ad64e6eab 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe102.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc index 0ba11f0a71f..b3f40f345a5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe102.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc index f2b49ac0c7a..c9804c4f474 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe102.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc index aec6f346e74..0ca52f08746 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe102.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/test.desc index bc8d12513a1..bbbd4a5b907 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe103_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe103.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc index b20acaa5da0..b76a8e01bd7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe103.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc index 2d23140f25a..666c530e203 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe103.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc index 8aa5d8e498c..2c1b2ac411b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe103.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc index b7b3d62923b..6086ccde208 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe104.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc index 09f95d84395..4bf56540f6f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe104.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc index 9ab91bd8d7e..dae23942aa6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe104.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc index a3d43c0a857..db247ffe029 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe104.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc index 0c4f0acf588..bc2f8faf5de 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe105.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc index 0609ce4646a..074ae2c8620 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe105.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc index 81cd7371faa..2e07a7da3b7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe105.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc index 04832dd1a0c..e190de76717 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe105.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc index 1416a9c7dfd..934d3fd0081 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe106.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc index 5b18be92d59..16cba2edf75 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe106.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc index bd40b8258f3..a3876b2eacc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe106.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc index 1391c5edbe6..79c395df093 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe106.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc index c5c7c88e09f..301b2d1a46f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe107.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc index 5e1e3f6c1c3..df4d8a40562 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe107.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc index 63852618aa8..d1a07b7767a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe107.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc index c81e39a4b11..9549b8a85aa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe107.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/test.desc index 0336c612859..75daea27290 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe108_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe108.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc index d058a5cb894..c00de24820c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe108.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc index 115fddd32c2..e2e868621f7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe108.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc index 174167418f0..ab0d7d1c614 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe108.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/test.desc index eff4dfbc58d..fba453b8d3b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe109_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe109.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc index a5c685b4293..42f241fa242 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe109.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc index 5866aac4578..13afbe8d631 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe109.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc index e4043bec362..994047696ed 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe109.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc index ee895c98e98..35fdfeba5a9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe110.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc index 9ff8b3826b0..eba31f4cd63 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe110.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc index f5b76010c71..b1bc875cad0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe110.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc index 25a341cf856..37f916a5b47 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe110.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc index 8205880d3c0..e73f9530768 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe111.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc index 942c3f29c7c..21a6bd4656e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe111.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc index cc432090a95..58961a9f994 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe111.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc index caa9fb150a1..b46f038ca1f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe111.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/test.desc index b6c641ae190..f242b5aa9f6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe112.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc index 16df902d878..751a8f32aa9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe112.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc index 91194c7247f..de673c24f26 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe112.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc index 4ea8eac0fc1..97cbfada017 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe112.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc index e69ac7902ed..370017bb267 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe113.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc index d6807127915..80c78ff2dde 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe113.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc index 5c106675b8c..7be8a62e323 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe113.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc index e5427952aee..740dbeb8882 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe113.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc index b2951d714dd..4fc68a0b387 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe114.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc index b8cbc392d3f..a53facb14de 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe114.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc index fc7ced57cee..da571ee2600 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe114.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc index 1123706ca6e..954d0ea13eb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe114.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc index caa8485486d..ba1ab14bb84 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe115.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc index 9c5decb97dc..b1d86064658 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe115.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc index 1b38a309d84..ee47a9a832a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe115.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc index 50ef10e6096..122b24e7d0f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe115.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/test.desc index 3b61f06c7fd..2dc9e166b95 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe116.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc index bbac7409170..70a5e707aee 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe116.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc index cf5faeb8e0f..8d351dee7a0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe116.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc index 0a393c4809f..ec26cc0386e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe116.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc index 68025de410b..b2c03e2eef2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe117.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc index 92c57336ddf..7974dbf60ce 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe117.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc index 24580fa1dab..62eec179386 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe117.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc index c094747e068..7359a5e3127 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe117.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc index eaf041196f3..21bd95bedd6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe118.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc index 7470b0d00ef..f16e7baa6a8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe118.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc index 195f8c7c607..101641eddd1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe118.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc index d3648ca8486..ce3ae59d991 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe118.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/test.desc index 3f336874977..f78eb0a1ae9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe119_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe119.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc index e2e48b63dc6..51fe1117846 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe119.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc index e490e80e8f9..a6f493cf30a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe119.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc index b1c20d72f5f..a00b9932510 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe119.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc index 368bff1b41c..f9b78fcf559 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe120.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc index ab74d0a2641..f7040448a0e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe120.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc index 475c73d35f6..008e1b64f0d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe120.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc index fde49d212c4..11cd841c9ae 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe120.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc index cabee8ddf4a..87c028a01eb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe121.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc index 32d0cd574e1..9d80ee45203 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe121.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc index 4f20dba3ef5..2b965a8af86 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe121.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc index 7de28f85400..50e600aff24 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe121.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/test.desc index e29215b1e33..d4cc387050b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe122.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc index b496905d00d..d2730dc8a9f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe122.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc index 6bf3cccd111..4a9814a9ac5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe122.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc index 08e41bb83a0..eb1c7c41363 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe122.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc index 4014bdf3aa7..48266758668 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe123.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc index ac648ed64e7..43015d41cb7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe123.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc index 77b16e0d034..23c85bb0e87 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe123.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc index 994a3e0cf35..2c4288fdc03 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe123.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc index 64d8c80158f..be4ee10a4ae 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe124.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc index 56a27093a96..7252a7e1820 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe124.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc index 6d857428f27..0cee4a809ad 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe124.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc index dc42f5f3c2a..9ad76577338 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe124.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc index 469ea7cce88..dbe91088e7f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe125.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc index a6ba60395dc..e4fc876614b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe125.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc index b11bc36f821..a3caec063ec 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe125.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc index c2a44d109a3..f7f23ce3a27 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe125.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc index 483fd84844a..436125cb706 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin000.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc index 6048dc6b06b..00ba03623da 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc index 1b10313117f..1adc0200bc9 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc index 716618d168e..111607ceec0 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc index fd09c5fe062..66668062156 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin001.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc index bc432cb9ea2..198e1b1598f 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc index 508155c46aa..0056bf274ee 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc index 868bd4d1bc1..f8864031cef 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc index 9c5903d7037..ef7b2817868 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin002.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc index afb32b7ff12..57814cae997 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc index 6de8d7b7d44..537013569e6 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc index 12b9d85e1e4..6baf04ec95b 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/test.desc index 081bdab6035..5634f6221c3 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk thin003.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc index 5759188a50c..b79c266b3f6 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/test.desc index bf233373b28..49fb2368289 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk thin003.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc index 99ecc0e2b71..428ef064b6d 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/test.desc index 2e936487c1a..23c693761b4 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk thin004.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc index d7c918d85d2..c996ba66fbb 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/test.desc index 6ad48f587d0..cf355aa1765 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk thin004.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc index 459165db040..32ca932b93d 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/test.desc index 848c1eb00c8..af1b791ed92 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk thin005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc index 0f3bf30699e..9abb459baf3 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/test.desc index fd615a658a3..645495b6f0c 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk thin005.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc index d7dc1e4e1f2..6964f83758c 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/test.desc index 1ea0a98b4e9..204a58631e8 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk thin006.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc index bba897dc201..e1f806909a5 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/test.desc index 05e399aef18..7b01e905122 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk thin006.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc index b90162f1866..06562ccf0bd 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/test.desc index b8f11ab4f8c..154a3e156d7 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk thin007.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc index ef231418229..02e4e318096 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/test.desc index c5b6978c899..ec0d7a3f4c1 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk thin007.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc index 1ad31f3e78c..db94d51d0a6 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc index 56abb4e3632..0ec537c7f3b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc index 133f637b340..ec95e809e62 100644 --- a/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc index 1c02752ba49..1a9743efc4e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc index 585c130e582..39bbd65d6e0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc index 53f54a1db78..6cb5af17a02 100644 --- a/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc index 8cd6363eb2c..d4cf57eb9a2 100644 --- a/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc index ab0a6f49102..52e86ce4712 100644 --- a/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc index 8a7d51be179..9f3e52650b9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc index c4986def22c..60704e50636 100644 --- a/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc index 218bb3b5c70..d2175b027e3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix002.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc index 963aa25bf58..b12703b5ec7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc index 93a1dbbd705..a7573404fda 100644 --- a/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix002.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc index 3e3263da25b..37453f52608 100644 --- a/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc index b94d5f01f35..cbaf1f5df6f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix003.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc index 5a84ca67dcf..5c4d84b4d8e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc index d81b21b0d19..12e9e6415c2 100644 --- a/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix003.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPT/test.desc index b7322917b01..4def3f56d07 100644 --- a/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix004.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc index 09ede7f03b5..10cfe7c771d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix004.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc index dda428a586b..91bc0682357 100644 --- a/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix004.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPT/test.desc index 7632e3bdf2d..8879960833e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix004.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPT/test.desc index d6a4b7712a4..e1942dbe919 100644 --- a/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc index 664b66deeb8..1bae0d0805e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix005.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc index 606d9ea51ba..de56f431048 100644 --- a/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix005.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPT/test.desc index d5adc5a2223..1db40ead9b6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix005.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc index ec31e2745ce..2c3d56ab607 100644 --- a/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix006.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc index 724188e2b84..403264ab4e6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix006.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc index 647ad567ca4..eaad9c8fcf0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix006.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc index 68e59f36760..8bf566e00a2 100644 --- a/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix006.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPT/test.desc index dddcbc430cf..d69365ce633 100644 --- a/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix007.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc index 61330a83d7e..625161240c1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix007.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc index 458042268cd..6b2a1d09744 100644 --- a/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix007.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPT/test.desc index 23d1d65ca65..193e73bde81 100644 --- a/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix007.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPT/test.desc index ee6d005d8e6..ea8a4ca172d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix008.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc index 165d73d5a77..f3d68820d1a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix008.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc index c768d30bedb..6d0faddf377 100644 --- a/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix008.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPT/test.desc index e278fa83086..0c629fd0cf1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix008.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc index c324609cb1b..ef5ac20063d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc index 2e04c602db3..29fc02695d5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix009.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc index c1839be20ba..b5ac93db2ed 100644 --- a/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix009.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc index 5bc48cfec6b..ecf2bf34073 100644 --- a/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix009.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc index 61ad184f28b..728314e7266 100644 --- a/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix010.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc index d86f6433e4d..5f72f3596a5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix010.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc index 1a26252df93..07a28cff99a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix010.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc index 749666f77f7..b3325bcb05c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix010.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc index 8932d52b586..1776d88eb40 100644 --- a/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix011.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc index f9e21ae3f1d..561d3260dde 100644 --- a/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix011.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc index 28c986d0e8d..10c94491855 100644 --- a/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix011.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc index 8230b78be36..8b2406975eb 100644 --- a/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix011.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc index b395efc97bc..d8e8cae3cd9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix012.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc index 3b8567ca666..9eb53ceb95d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix012.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc index 16a9b8666b8..d011402be31 100644 --- a/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix012.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc index 61282daf61d..d49fa837c00 100644 --- a/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix012.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPT/test.desc index c16048ebf5a..c94a6f74dfb 100644 --- a/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix013_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix013.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc index e74f3685200..baf26c1d5e9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix013.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc index cd7dfab4be2..efae3171d1d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix013.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPT/test.desc index 66b1affb0e1..7f588944482 100644 --- a/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix013_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix013.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPT/test.desc index cd402902e93..9c8604a0e7f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix014_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix014.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc index 5872b3c4f1a..feb168f940f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix014.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc index 706cde3d732..c8cc0571098 100644 --- a/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix014.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPT/test.desc index 139cc677b37..ff3cfb1f040 100644 --- a/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix014_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix014.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc index cc953f1a65f..e97d04e7c6a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix015.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc index db422faf4a3..87a68a614db 100644 --- a/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix015.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc index 0eb0b505427..3389c90dff5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix015.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc index d20cedc1abe..7a891d91607 100644 --- a/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix015.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc index cc677cfc2c8..33d5e75b814 100644 --- a/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix016.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc index f08466d4d6a..9af0390af84 100644 --- a/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix016.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc index 6946addb7cb..e9c7f7bbeea 100644 --- a/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix016.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc index 354098c5262..96956927064 100644 --- a/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix016.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPT/test.desc index 46396748e2a..bd61a5c9546 100644 --- a/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix017_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix017.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc index 1ab2ef5955a..9faec720361 100644 --- a/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix017.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc index 89bc7a4d6f6..05b09e60b75 100644 --- a/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix017.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPT/test.desc index 7fbc2f890f7..fd0aa4f9c32 100644 --- a/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix017_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix017.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPT/test.desc index fa4ef3f403b..b93afd2c109 100644 --- a/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix018_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix018.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc index 9d4504221cc..8fb2893e303 100644 --- a/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix018.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc index 0bc45d8e811..1459ae9787a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix018.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPT/test.desc index 5f955d9b9e5..d623b9b36dc 100644 --- a/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix018_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix018.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc index 3a813313410..21a8775b899 100644 --- a/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix019.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc index 1883e4ee764..6f03d63ddd1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix019.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc index bc49152e547..232d4b83dba 100644 --- a/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix019.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc index 4cb12301d8b..2d823f38182 100644 --- a/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix019.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPT/test.desc index 40e9f4286a7..31a8d9eb9fe 100644 --- a/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix020_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix020.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc index 68c08e8ca02..0e48f289f81 100644 --- a/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix020.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc index ade7a7756e8..a74aa24a161 100644 --- a/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix020.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPT/test.desc index 3517bac24f2..6074de3d5bf 100644 --- a/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix020_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix020.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPT/test.desc index 6935454f5fa..7516f8a755a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix021_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix021.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc index ddb99f9364a..8316ae9fb26 100644 --- a/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix021.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc index 0e61791cc27..323be74463d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix021.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPT/test.desc index ce445dc4214..a2407ad2076 100644 --- a/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix021_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix021.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc index a3918549467..b3f908c5afe 100644 --- a/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix022.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc index 70bd3689474..0559e71d2a5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix022.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc index 3cb67f40075..bf94ef2d463 100644 --- a/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix022.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc index b25d084e64e..45844d8ce46 100644 --- a/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix022.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPT/test.desc index 78e9b806de4..58be4916b66 100644 --- a/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix023_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix023.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc index d34195f9ab3..cb21524ae2a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix023.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc index f1737a1e54b..a05db841bb9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix023.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPT/test.desc index 81d95f87583..b73734eade8 100644 --- a/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix023_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix023.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc index a9a608f34f7..05995a928da 100644 --- a/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix024.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc index ab81f63d353..592435fc081 100644 --- a/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix024.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc index cb8de80571c..5f6c57ac9ed 100644 --- a/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix024.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc index 8e602f223d8..e65e7e2e029 100644 --- a/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix024.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc index e8a652ffa31..63389cd735e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix025.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc index cddbfbc90a1..83775d52aea 100644 --- a/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix025.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc index 9d95f5b6958..b48545df990 100644 --- a/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix025.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc index 7660f0bd059..cc3299a6035 100644 --- a/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix025.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPT/test.desc index 3a1360124f4..7a8cd81e101 100644 --- a/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix026_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix026.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc index 6602c2cdffe..a8f7b1e4cf3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix026.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc index 8a2d613123f..b8fb3c46321 100644 --- a/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix026.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPT/test.desc index 796fa268b6c..b5a7143060c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix026_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix026.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPT/test.desc index d139bf72b8e..22a759e3a57 100644 --- a/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix027_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix027.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc index 1e453b7c929..5476f19efd3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix027.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc index 7a9bfcaf11f..ed660be3f7b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix027.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPT/test.desc index 562b776e880..7456ac7d4a1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix027_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix027.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc index 61aaecdebd2..b02a6626c4a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix028.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc index ba1151ee05b..fd87105e7a6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix028.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc index 9f29b71f1e0..24ec9c2ee96 100644 --- a/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix028.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc index 3ffb06d3f00..61b312d4bdd 100644 --- a/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix028.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPT/test.desc index bc368c66db0..93ff1894a4a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix029_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix029.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc index d0730373fd5..225bbd4c242 100644 --- a/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix029.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc index 8cf7aef6481..973c118864a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix029.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPT/test.desc index 5b8f93d0b79..981f03d6bd8 100644 --- a/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix029_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix029.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPT/test.desc index c46fb0666c5..291f916d4b7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix030_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix030.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc index 0ed4168b35b..bd06e2f3d7c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix030.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc index f621c845930..34315f01c01 100644 --- a/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix030.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPT/test.desc index faaf5306dff..ac12be52ea2 100644 --- a/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix030_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix030.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc index 327e1648b91..ef291a2cfa0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix031.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc index 20b75e5756c..dbdefaeb4e3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix031.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc index 2abf1a20715..88b26bd69a7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix031.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc index f1b9456b6ad..a591f896007 100644 --- a/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix031.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc index fda02d7ff17..cd953b60ad3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix032.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc index 54d0a56cecd..d0c45dbb450 100644 --- a/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix032.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc index 26a559a7c89..937eb7bd8d4 100644 --- a/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix032.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc index 40e29649ec4..07cdc189292 100644 --- a/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix032.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc index b56231bf460..d547d324e7a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix033.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc index 5cf15845731..f43a8af65f5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix033.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc index 31a8b01b0f2..112a4ded06b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix033.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc index cc454948c7e..4ff29b69bf7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix033.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc index 1c04ec1033f..5ae4b7cbd77 100644 --- a/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix034.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc index 777700d1c13..f735ed3c27d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix034.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc index 694c62171c5..5a5c0a04869 100644 --- a/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix034.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc index b27fdafac44..8670955b458 100644 --- a/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix034.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc index ae4af5415bb..46db04da132 100644 --- a/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix035.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc index a47c1d6f771..0be5df00103 100644 --- a/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix035.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc index db0c16c3d7e..532d23a74a6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix035.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc index e82626b11a7..580f5e64abd 100644 --- a/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix035.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPT/test.desc index 53ab1618eb6..4a2d1d2ea9b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix036_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix036.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc index f746fa74cd2..a5b9dbbf5fc 100644 --- a/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix036.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc index 1ac82d7bb97..7fba0cc9a8b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix036.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPT/test.desc index eb8f0f1e5bf..7ae69288300 100644 --- a/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix036_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix036.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPT/test.desc index 9c86a7aec25..1a99ba4824f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix037_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix037.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc index 93857eb374c..acbe9d72ada 100644 --- a/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix037.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc index e91c73cfa07..495f7df448d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix037.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPT/test.desc index e65fb702947..b9ac9b56157 100644 --- a/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix037_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix037.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc index cc58cfbc368..577a55a9c7a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix038.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc index ff92f8d7813..bf772ab0e7a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix038.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc index 1af820ff9a9..c9cfe00c76d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix038.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc index 34de6481b1b..78df4b32e2f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix038.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPT/test.desc index 68b5a48bca4..2992cbac033 100644 --- a/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix039_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix039.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc index a9562a9300a..62582e35206 100644 --- a/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix039.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc index fcf5a4ef243..e1a98a67c94 100644 --- a/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix039.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPT/test.desc index 05a59783ffa..7b6204716a3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix039_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix039.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPT/test.desc index 3c4f605cc4c..eadc9174a58 100644 --- a/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix040_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix040.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc index 528600d279e..524f0f88c62 100644 --- a/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix040.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc index 77c226adbc9..0d294af5901 100644 --- a/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix040.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPT/test.desc index d0f207b5462..03ac55cd9b5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix040_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix040.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc index 711b054df6a..2c9d4eadf75 100644 --- a/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix041.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc index 95f2d19d23a..bcd5edad2e3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix041.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc index cd73c987669..bb0346d9a23 100644 --- a/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix041.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc index 2099eb38d91..dec56817bbf 100644 --- a/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix041.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc index 3a26c389889..34e8903698f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix042.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc index 5a8f2949972..897ea4c37a7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix042.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc index ce89e65a7e2..77079e38762 100644 --- a/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix042.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc index 66d65d77642..b6ada292ef0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix042.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPT/test.desc index 50b0ee8a846..62760a4df9b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix043_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix043.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc index cc7c4025847..9e069577f12 100644 --- a/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix043.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc index c9f80bd777c..2ac3b0b63a2 100644 --- a/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix043.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPT/test.desc index 5ac0ec1cc9d..a113dc8b66f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix043_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix043.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPT/test.desc index cd154a9264d..b140d2172df 100644 --- a/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix044_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix044.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc index 3a7c02a1b9a..1d688677b36 100644 --- a/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix044.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc index 7ff464f6b97..6425f9cc36a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix044.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPT/test.desc index 3a072c61360..56f8af595f9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix044_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix044.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc index 3d5db2ba379..329d92020a9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix045.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc index 1cbc893b90c..67ee833012c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix045.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc index 71746ca2179..8c1d06d0383 100644 --- a/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix045.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc index 82e944c8f74..c8efa4a947b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix045.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPT/test.desc index 43884f5fb26..2ff7ef6f065 100644 --- a/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix046_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix046.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc index c7a6d4650f3..4317e070c0e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix046.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc index a4c270f5bb2..90b355a7a7f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix046.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPT/test.desc index 964f6dbd41e..3f49b459ec3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix046_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix046.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPT/test.desc index dca29116099..d86e280694b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix047_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix047.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc index 65b0512ab5a..9c56e46a225 100644 --- a/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix047.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc index 7c119d39bb5..f3cb4c8f921 100644 --- a/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix047.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPT/test.desc index ba676e974e7..c2e47980f45 100644 --- a/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix047_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix047.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc index c04ecbb42ca..1fee7d0ccf7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix048.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc index c678ad50eb0..59cdd520b52 100644 --- a/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix048.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc index 0f4f0e728ea..8476902b2e9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix048.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc index 7bf06c04ee6..a77151309a9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix048.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc index f113fca46f9..afdc4a32fc5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix049.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc index 969b2f11991..4e9a198f1b1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix049.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc index f6431ae0503..85d0bec9844 100644 --- a/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix049.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc index b41d36a9ec4..6e6bac3034a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix049.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPT/test.desc index 7fa25b8bfd5..b87de62a6cb 100644 --- a/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix050_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix050.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc index 75ea2431a94..f227b1ff364 100644 --- a/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix050.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc index 26c5ff272d2..3e4d168b5ac 100644 --- a/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix050.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPT/test.desc index 9d4b8808cd1..fb06dd1a183 100644 --- a/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix050_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix050.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPT/test.desc index ecc67fa18cf..0b288bc1134 100644 --- a/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix051_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix051.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc index 85ee4839a14..30148076304 100644 --- a/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix051.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc index 272f68552bd..53bfdc0dd3d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix051.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPT/test.desc index 416033dab99..e54bd2a8ca4 100644 --- a/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix051_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix051.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc index a13eddd18a9..d20ea9e0ae3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix052.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc index 8e762a1829c..7e2721b8b80 100644 --- a/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix052.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc index b4eac17d1c6..1260820cc22 100644 --- a/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix052.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc index 94b5db09ca7..24cb0d9fb3f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix052.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPT/test.desc index 77a119783f0..f27f96eef39 100644 --- a/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix053_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix053.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc index 225e7209a09..c3915659d91 100644 --- a/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix053.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc index 368ee129043..00d9eda7298 100644 --- a/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix053.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPT/test.desc index 76f0e4377b4..aba207732a1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix053_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix053.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc index 68f05bda1ee..a6c7553af8a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix054.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc index ac8ccf7c6c8..665d5556881 100644 --- a/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix054.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc index 627a0ac467a..b4864b4233d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix054.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc index 401df11d006..c5a92a66811 100644 --- a/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix054.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPT/test.desc index 239ccf014f1..05467daf49d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix055_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix055.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc index 64d92a4dfe4..f462d52bc15 100644 --- a/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix055.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc index 1841ad9b82c..ff925ec911c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix055.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPT/test.desc index 8d9b9e68e41..28bcc1a5c17 100644 --- a/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix055_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix055.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc index fda27182c6a..6c52646fba8 100644 --- a/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix056.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc index d504a1f5ba8..d35eff11b85 100644 --- a/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix056.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc index 5a9d00fecb2..751d1f1d876 100644 --- a/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix056.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc index 4fbd951fe3b..04d773d37bb 100644 --- a/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix056.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPT/test.desc index a59c1cbc4d7..5012f7a7e81 100644 --- a/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix057_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix057.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc index 37f9fb1e7fd..560c9844ce5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix057.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc index 75f6ccc49dd..f583216897c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk mix057.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPT/test.desc index ec91075aa00..544f9fc02a2 100644 --- a/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix057_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk mix057.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc index 6d7807b9b06..4df41b0d8ed 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc index ae64c0226c3..66763aa3e90 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc index fa7fd1fd100..035737ef01f 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc index 2182a7fb2e2..2e3191e6152 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc index d9c3e7e5c17..31bee5edb55 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc index 8c99a6db49f..46466001aa1 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc index f7c2088eb90..c1bd41aedd6 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc index 7a8ce1cefba..d2ca0cf6741 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk podwr001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc index 18887415c82..446e8af9955 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc index b8902750eea..3740b76c451 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc index abd84d14a1c..c3ce6eed5fd 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc index 742978c85a6..08950f1e0ad 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc index 2fe938ebe00..346976839cb 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc index 97bf497420b..837278af8e1 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc index f718c6fcaed..401de42e4fd 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc index 36a65b7453a..fa0c44cec0e 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc index c3d3e0d1814..7fdef8f0914 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi002.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc index 7fc6c0abd2f..aba2170589f 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc index 926d711137c..8e16ba000b9 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc index 26156cba6bd..55b0ccaf9da 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc index 52aecda1bca..f19e39c2f75 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc index 88627d228de..574ff8e7c10 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi003.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc index c01e3351e4a..d22fb0ab630 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc index 8c6a820ea20..9e90684f9aa 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc index dfacc9a2347..ab722b36ddb 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi004.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc index 454844a4fa6..29b6de55bce 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi004.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc index 4ae24bc10c6..37aa32ee150 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi004.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc index ca0ccc0d24f..578408ae6ac 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi004.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc index 062da7c611d..6d927d8d772 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc index 13b52ab7186..640ab66b5d0 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi005.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc index bb720f900f0..e801397333f 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi005.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc index 788ed0b0f25..aeb422e5880 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi005.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc index cfe5662c5d9..0a1f06b0d57 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi006.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc index 31c769ea89b..48c5a5a1af0 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi006.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc index 8b34c60409a..c5077c76f43 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi006.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc index dea19fd6de2..1c82f39898b 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi006.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc index 36aa382ad27..b2f41cef03d 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi007.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc index 98281b67e05..5599833f6aa 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi007.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc index a7249c6f906..b2e6ef29ac5 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi007.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc index 8d5b66e927a..282ccd8fe22 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi007.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc index a02564044e6..ac3da1a4e4a 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi008.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc index 880b0adb84d..6e315ef575c 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi008.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc index 0e177f3d7ab..ec4a339a8d1 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi008.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc index 30f98854395..badc871e5f0 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi008.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc index 9c6b21307f9..e28e6b07d70 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc index fc9e1981ba9..aae659ea5ef 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi009.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc index dbdbb55e02c..156a62def10 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi009.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc index 53e4734d6dc..eecd24df909 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi009.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc index a06997a1e43..fc2b0dd73d9 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi010.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc index 66f87559be7..70a6ee7977d 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi010.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc index c39db44f073..27e61adc845 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi010.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc index 2244e1dc635..0734f707127 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk rfi010.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc index 8bcd352c34f..42f28d33a0d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc index 059e0b72889..68ce1dca9aa 100644 --- a/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc index 74d96fd9831..66356ef4a48 100644 --- a/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc index d4b3b3c5c80..a7abcb9cef1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc index ba214e9ac68..c87353a87c0 100644 --- a/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc index c06ec83515e..9feb21b14b7 100644 --- a/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc index d2230bca1e4..72b62035c74 100644 --- a/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc index 252a39674e6..84953281aad 100644 --- a/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc index 24ce9c328a2..44ba87d0c0e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc index 3d5d726f134..f13fb30ac89 100644 --- a/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe002.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc index 93699f936a5..ad8e5ce54d4 100644 --- a/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc index 6a1ef6208b7..1875fe78857 100644 --- a/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc index 771af6fa2f0..0154f5b393f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc index 8cbf5e66aa6..c08122aae63 100644 --- a/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe003.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc index 13ec3658de3..ded70ae86ce 100644 --- a/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc index 4a2201f85f0..d66e5d92de0 100644 --- a/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc index 41aac7ce805..4e07a7a5e0e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe004.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc index 10c8b01223e..c0c52b5a73a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe004.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc index b5c354947d1..8c3d0279463 100644 --- a/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe004.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc index aedb08726ea..777e21c9da3 100644 --- a/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc index cafd9e7f333..e4d3e0fc652 100644 --- a/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc index fdc1e51ddce..65e2cf39ea7 100644 --- a/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe005.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc index 4da00b4b857..f9f90b95182 100644 --- a/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe005.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc index 2834168bbe0..2574999bd00 100644 --- a/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc index 94e331b0e8a..2fd83f67557 100644 --- a/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe006.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc index db3e7a73e68..0e3dda55ab2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc index 384cf0e6937..dbb4cfcb86e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe006.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc index 016ba50e925..d9a3f80d2fc 100644 --- a/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc index 44744dd78a1..e8bc361a72c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe007.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc index 7ab14277274..6a74e7491ca 100644 --- a/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc index c31a19b4814..7b5ca465942 100644 --- a/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe007.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc index 572b8b66c77..7aaca2e899f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc index dda1a403d61..197dcfb96d9 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe008.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc index 4a087dfa139..e75d525e175 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe008.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc index 39d19005396..950a373c5bb 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe008.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc index 3efef04b349..a53a1342f30 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe008.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc index 9d2d63cb5c3..c27d5f5c324 100644 --- a/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc index c1d5f6be8d7..a3356e9b580 100644 --- a/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe009.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc index 88db33ecba0..5ee170cac0a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe009.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc index ee23e17f422..aa84f946d70 100644 --- a/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe009.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc index be31f3fa647..3828bda097a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe010.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc index db2dd5dd238..5e11a79ec3d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe010.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc index ef7e44f33c2..d0550ef13fb 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe010.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc index b6f55eac688..8597672d257 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe010.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc index fe6b0425c91..2647a37a6fd 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe011.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc index 63406f71507..ffb3a4206e8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe011.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc index 395e4f52676..675fd21112c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe011.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc index 948aeb35339..52a9f083352 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe011.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc index aac4fc81d60..2d2a267b9a1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe012.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc index 4b84ca1a32e..a603df4369a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe012.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc index dc0d80eeba7..57611807a4b 100644 --- a/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe012.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc index cee4b1d5569..e3af18b3e32 100644 --- a/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe012.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc index 5f9d5ebd538..c43a3be97a3 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe013.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc index 0a32b22fc9f..8bc62ab05ef 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe013.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc index d7a903201ee..b074f17c339 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe013.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc index 22e2a70f6a3..9e353b096d1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe013.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc index 698aa33ac98..1de0f9ca881 100644 --- a/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe014.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc index 4f8d40a60a1..2828b41e5a0 100644 --- a/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe014.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc index 85329df89ee..a5bfbeec42d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe014.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc index 3eea17d25c1..4e17a710d23 100644 --- a/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe014.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc index 56b08252db4..2090e663c91 100644 --- a/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe015.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc index 40dfa9fb029..878b1e3c113 100644 --- a/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe015.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc index 5e173f66e04..8653f1cebe5 100644 --- a/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe015.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc index 0f897bb6314..2ec65817513 100644 --- a/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe015.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc index 387a8167e45..b32c78b4bce 100644 --- a/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe016.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc index de0230863eb..5ed02cde4f2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe016.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc index 0d9d954a00c..e86e597a00d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe016.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc index ef01fa87357..5e9b5010b51 100644 --- a/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe016.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc index 580be638dd4..6fa37ad494a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe017.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc index 475f8c58608..3b335e9fc44 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe017.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc index f35ea2032a0..3edb2e398e3 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe017.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc index a67e27f1606..ffbc5668de7 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe017.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc index dcef8eda3f2..db88baf47e0 100644 --- a/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe018.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc index ab2ff3497f3..cba79051b81 100644 --- a/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe018.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc index f834616e616..7e551d6da33 100644 --- a/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe018.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc index 8afe0ffcbc9..13acca85c12 100644 --- a/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe018.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc index 57b16843689..9334883239f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe019.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc index 92d3ae69028..a6dec2ce8ef 100644 --- a/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe019.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc index fac0cee75ec..812105a91b1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe019.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc index c86dab48805..0aa65915d87 100644 --- a/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe019.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc index 5a9d63e2605..4eb7a964017 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe020.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc index fd074b3a2c4..238298a0c11 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe020.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc index 0683c96a231..268e62ed485 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe020.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc index b8b1cc8d169..695fe195823 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe020.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc index 9e880c7eafb..fe295c225dd 100644 --- a/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe021.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc index 4485dd8ae43..53564dfc9ca 100644 --- a/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe021.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc index 7cddb459e2d..3924d15b3dd 100644 --- a/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe021.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc index 4cbc4b499fc..99fd7723446 100644 --- a/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe021.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc index b5767f5cb0b..719d0dabbdb 100644 --- a/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe022.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc index e4541890778..393cb3d44d8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe022.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc index a612425c4c4..feba1a3298b 100644 --- a/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe022.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc index 8eac0237ff1..f2103003983 100644 --- a/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe022.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/test.desc index d4a3d47f16e..5a75cb29f91 100644 --- a/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe023_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe023.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/test.desc index 8a49bf5e6e0..0e8fee6219e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe023_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe023.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/test.desc index 6ee4a621794..0953cdd63af 100644 --- a/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe023_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe023.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc index 5b41beed3b1..862265668e2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe023.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc index 5c9870261e2..45a9ed605b3 100644 --- a/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe024.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc index 998d45f541e..e64c4d4cfe5 100644 --- a/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe024.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc index 0622d32517f..022018cd4f1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe024.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc index 5a0c6e067f0..39ac8bbc0da 100644 --- a/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe024.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc index da259891a9a..ba06b4b0077 100644 --- a/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe025.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc index 0f4aa8c7b64..807a34dbd70 100644 --- a/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe025.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc index 0c3a46d766c..f234bf73fbf 100644 --- a/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe025.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc index 2ad15c0be83..e6eed222c22 100644 --- a/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe025.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc index 44aac5fd565..22c5e9535ff 100644 --- a/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe026.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc index bbf92666b7f..25ea166fe17 100644 --- a/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe026.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc index 5fb46a1e6b4..57619f1ad36 100644 --- a/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe026.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc index 35466976d95..d4beb230f0b 100644 --- a/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe026.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc index 37d726728ab..587c985b8de 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe027.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc index 29cb693e496..a2735820092 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe027.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc index 0c428ce8f7c..8eaf77f4625 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe027.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc index acd20502f12..438aa4a7b2e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe027.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc index baf396efd61..55178c61837 100644 --- a/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe028.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc index 5f5a3ea7e76..1a23b29b121 100644 --- a/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe028.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc index 6fb0a774b93..b8207104c6d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe028.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc index b6fa4e93ca0..14e34d68644 100644 --- a/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe028.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc index a986a801990..b87f1fe35c8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe029.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc index e7af82b9901..45e55f9bbe3 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe029.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc index 99357f58df5..ad1db76c80b 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe029.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc index 97b1dfb9adf..34c9594e332 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe029.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc index 15f31210d49..a323251f7c0 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe030.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc index d368ae5664c..3f0df39a7fd 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe030.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc index febdf259193..9d75696aae0 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe030.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc index dd22548ee08..eb3169afe73 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe030.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc index 485522f3521..8b055ea0eb0 100644 --- a/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe031.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc index 818e0f95491..ff333fef5ca 100644 --- a/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe031.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc index 02a1821ad45..4b0869ef1b2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe031.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc index d6c9f80de67..a5ca148946c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe031.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc index d2e8fb4e39a..f0a2d558c48 100644 --- a/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe032.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc index 815ccaf3fee..339a041ddde 100644 --- a/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe032.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc index 844c26d7be1..9123478c4fd 100644 --- a/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe032.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc index a7d458ad3ab..432bb612d56 100644 --- a/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe032.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc index c778b22227e..51f2e2f0c8d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe033.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc index 7397227e042..7d3aff0d079 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe033.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc index 3d3fc27eebd..b1bfb661ec4 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe033.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc index d93bfa51cf2..6e9084ca047 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe033.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPT/test.desc index 1f26ea640d2..45de74c2709 100644 --- a/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe034_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk safe034.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc index 68a5107085a..497d6f122d9 100644 --- a/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe034.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc index 65b80030936..63d412ef9c1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe034.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc index 13b8e42b022..f42dbf08322 100644 --- a/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe034.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/test.desc index ef7202a9ba0..e25285c39bf 100644 --- a/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe035_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -FUTURE +FUTURE glpk safe035.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc index e372bf2bb7b..7cc36f04611 100644 --- a/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe035.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc index 067eddb87e7..d2d503f3d6f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe035.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc index 4b5c5c80e5d..e3271875608 100644 --- a/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe035.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc index c4ca5328029..04c074f7692 100644 --- a/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe036.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc index 4330c62ffeb..77c3e613978 100644 --- a/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe036.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc index 63b3c1bdc70..ea65c6e9786 100644 --- a/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe036.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc index 5b311991045..063d0ca2a50 100644 --- a/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe036.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc index 73f22d96d93..8ed56e50dd8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe037.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc index 7a4729ed630..4e426c94c69 100644 --- a/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe037.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc index 4c462f457f6..3d9d0784382 100644 --- a/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe037.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc index c6b48e545c9..aaed680a10f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk safe037.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc index ed47fc0cd8b..b702c466ac1 100644 --- a/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc index 6048dc6b06b..00ba03623da 100644 --- a/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc index 5e2c58e98b4..273af5a3ebf 100644 --- a/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc index 716618d168e..111607ceec0 100644 --- a/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc index a740967c978..ab66f9eb019 100644 --- a/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc index bc432cb9ea2..198e1b1598f 100644 --- a/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc index 6522eac690c..d1a67b3a2df 100644 --- a/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc index 868bd4d1bc1..f8864031cef 100644 --- a/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPT/test.desc index 4bdc0169633..63acd15033c 100644 --- a/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -CORE +CORE glpk thin002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc index afb32b7ff12..57814cae997 100644 --- a/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc index 227b17e90bf..4ae0d0c5550 100644 --- a/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc index 12b9d85e1e4..6baf04ec95b 100644 --- a/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH +THOROUGH glpk thin002.c TSO OPT ^EXIT=0$ From b370f3679e44dbaaff47f207d81002ed59c9ca31 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Wed, 17 Mar 2021 18:55:07 +0000 Subject: [PATCH 22/25] goto-instrument-wmm tests: mark failing tests KNOWNBUG Some of the tests that were previously imported as THOROUGH from the tar archive actually are failing and require further investigation. --- .../goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/test.desc | 2 +- .../ppc_bclwdww000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/test.desc | 2 +- .../ppc_bclwdww001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/test.desc | 2 +- .../ppc_bclwdww002_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/test.desc | 2 +- .../ppc_bclwdww003_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/test.desc | 2 +- .../ppc_bclwdww004_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/test.desc | 2 +- .../ppc_bclwdww005_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/test.desc | 2 +- .../ppc_bclwdww006_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/test.desc | 2 +- .../ppc_bclwdww007_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/test.desc | 2 +- .../ppc_bclwdww009_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/test.desc | 2 +- .../ppc_bclwsww000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/test.desc | 2 +- .../ppc_iriw+addrs_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/test.desc | 2 +- .../ppc_iriw+lwsync+addr_CAV11_SAFE/test.desc | 2 +- .../ppc_iriw+lwsync+addr_SC_SAFE/test.desc | 2 +- .../ppc_iriw+lwsyncs_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_mix000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr000_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr000_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr001_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr001_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr002_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr002_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr003_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr003_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr004_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr004_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr005_CAV11_SAFE/test.desc | 2 +- .../ppc_podrwposwr005_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr006_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr006_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr007_CAV11_SAFE/test.desc | 2 +- .../ppc_podrwposwr007_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr008_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr008_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr009_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr009_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr010_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr010_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr011_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr011_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr012_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr012_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr013_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr013_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr014_CAV11_SAFE/test.desc | 2 +- .../ppc_podrwposwr014_SC_SAFE/test.desc | 2 +- .../ppc_podrwposwr015_CAV11_ERROR/test.desc | 2 +- .../ppc_podrwposwr015_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe002_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe003_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe004_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe004_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe005_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe006_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe010_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe011_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe014_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe015_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe016_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe017_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe018_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe022_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe023_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe024_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe025_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe026_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe027_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe028_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe029_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe030_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe031_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe032_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe035_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe036_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe039_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe040_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe041_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe042_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe043_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe046_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe047_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe048_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe049_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe050_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe051_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe052_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe053_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe054_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe055_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe056_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe058_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe059_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe060_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe062_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe063_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe064_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe066_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe067_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe068_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe069_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe070_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe071_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe072_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe073_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe074_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe075_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe076_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe077_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe078_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe079_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe080_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe081_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe082_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe083_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe084_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe085_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe086_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe087_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe088_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe089_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe090_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe091_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe092_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe093_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe094_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe095_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe096_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe097_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe099_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe100_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe101_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe102_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe103_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe104_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe106_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe107_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe108_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe109_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe110_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe111_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe112_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe113_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe114_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe115_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe116_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe117_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe118_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe119_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe120_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe121_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe122_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe123_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe124_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe125_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin002_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin003_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin004_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin005_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin006_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin007_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix002_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix003_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix004_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix005_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix006_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix007_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix008_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix009_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix010_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix011_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix012_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix013_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix014_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix015_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix016_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix017_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix018_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix019_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix020_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix021_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix022_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix023_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix024_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix025_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix026_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix027_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix028_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix029_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix030_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix031_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix032_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix033_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix034_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix035_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix036_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix037_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix038_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix039_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix040_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix041_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix042_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix043_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix044_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix045_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix046_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix047_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix048_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix049_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix050_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix051_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix052_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix053_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix054_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix055_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix056_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix057_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi002_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi003_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi004_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi005_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi006_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi007_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi008_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi009_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi010_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe002_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe003_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe004_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe005_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe006_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe007_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe008_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe009_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe010_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe011_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe012_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe013_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe014_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe015_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe016_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe017_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe018_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe019_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe020_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe021_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe022_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe023_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe024_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe025_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe026_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe027_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe028_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe029_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe030_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe031_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe032_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe033_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe034_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe035_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe036_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe037_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin000_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin001_SC_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin002_SC_SAFE/test.desc | 2 +- 684 files changed, 684 insertions(+), 684 deletions(-) diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/test.desc index 670d7917905..c9b7871e454 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr000.c POWER ALL ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/test.desc index bfcf2ac027b..3a46bf0d0ec 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr000.c POWER OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/test.desc index 333ec15e8eb..35460c147af 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr001.c POWER ALL ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/test.desc index cebb0df0fbd..94e1f7bf150 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr001.c POWER OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/test.desc index fdc3afa55ca..17634225bb4 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr002.c POWER OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/test.desc index 0f922c48431..008507e75fb 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr003.c POWER ALL ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/test.desc index c08db79f84d..3ce2f531f78 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr003.c POWER OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/test.desc index 0fd059dfc0a..b4c228b9010 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr005.c POWER ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/test.desc index 0b2d28d67a9..2f9f05f1c50 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr005.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/test.desc index a0115ea576d..a5e5ad0480c 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr010.c POWER ALL ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/test.desc index bab9dcc86a2..77c0ef57620 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr010.c POWER OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/test.desc index 781eca2c629..a5f92c55868 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr011.c POWER ALL ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/test.desc index b52bbe7aa19..dfdc1ed3b5f 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr011.c POWER OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/test.desc index 18502f2a18c..b1b983d16ef 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr012.c POWER ALL ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/test.desc index 65089f81134..04e96d8f16a 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr012.c POWER OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/test.desc index 14c8e89db3b..33c79028f63 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr013.c POWER ALL ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/test.desc index af210dda71f..9d9ec263839 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr013.c POWER OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/test.desc index 263c818f07f..51e7531e1c8 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr014.c POWER ALL ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/test.desc index 328c1051f36..fd5c2e7e258 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr014.c POWER OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/test.desc index 11edafd0dcf..eac61a892ec 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr015.c POWER ALL ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/test.desc index 7e68b7a0a30..46eac8210e1 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwdrr015.c POWER OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/test.desc index 1e32ca1b5b0..f5f055f8ddb 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwsrr000.c POWER ALL ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/test.desc index 106e08eabac..cfed5f170fd 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwsrr000.c POWER OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/test.desc index 18b30878edb..fc44a1bd08a 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwsrr000.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/test.desc index f9addb815e2..ed83175c808 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwsrr000.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/test.desc index f6ea5dceee4..19024d01163 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwsrr002.c POWER ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/test.desc index c81e6325045..1b1bb7b3dc1 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwsrr002.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/test.desc index d54330a9ac7..bfb72b0a88e 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwsrr002.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/test.desc index 7139f8e4b71..3abd1175269 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG aclwsrr002.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/test.desc index 9841c3288ff..680b7771670 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/test.desc index 15db2537146..f87697c40a1 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/test.desc index 055a9487cc3..201c2e0ecd5 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/test.desc index 5440c96c8ce..f17ea9225eb 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/test.desc index 16fcde6b611..da8e3f7492a 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww002.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/test.desc index bc253c18b0b..eced3a4f601 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/test.desc index d525f7ce825..104d6b995d1 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww003.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/test.desc index 95140e40995..82b1adc4476 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/test.desc index 9e0f22f8764..2f1899f31dc 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww004.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/test.desc index ad132eae1bd..69f5a5f46ae 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww004.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/test.desc index 4a16f7e742c..73d7a3a7252 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww005.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/test.desc index 71c8bd0742d..dfdafb58292 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww005.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/test.desc index 0b76f386d46..3edffede416 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww006.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/test.desc index 05d132d5f6f..637ad0e7ca8 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww006.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/test.desc index 7a1f047d6d9..1791ebaa9fe 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww007.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/test.desc index b9c84131f13..f85cb4a62c8 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww007.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/test.desc index 5edd047892a..d3f220e8ce2 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww009.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/test.desc index 7ca8227ec71..60e74365490 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwdww009.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/test.desc index b5ec9c85c14..177015803d2 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwsww000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/test.desc index 492f9d72f65..0e0c97c6e3f 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH bclwsww000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/test.desc index 75a8a6b4537..798296caf95 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH iriw+addrs.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/test.desc index af736b154b3..344bf35bad5 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH iriw+addrs.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/test.desc index ff08f70ba96..6a1eeae57b9 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH iriw+lwsync+addr.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/test.desc index 6c069ecc0c7..766bf022528 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH iriw+lwsync+addr.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/test.desc index 7855a389455..ec04da6fda5 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH iriw+lwsyncs.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/test.desc index 36d61ee3230..6249fd245f4 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH iriw+lwsyncs.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/test.desc index 58a7972e930..7d92bd9ba72 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/test.desc index 6a2408181cb..20ad8592490 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/test.desc index 0656f76b841..87b340e7229 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/test.desc index e802034633e..ecc47e11953 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/test.desc index 1c7639cb016..95e4712fa6f 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr002.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/test.desc index 89ae453bfe9..91dc8149bbf 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/test.desc index 12107d464cb..21b0c99ea6b 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr003.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/test.desc index 090f761229e..17f2221c74f 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/test.desc index c6c3b7febd9..eba6ddff57e 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr004.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/test.desc index fb0893d6d44..ddc8a1d7753 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr004.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/test.desc index 154261008e6..c065e542d0e 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr005.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/test.desc index d1dc8266b76..ef576775650 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr005.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/test.desc index 1c268ac12b9..83ee3814706 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr006.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/test.desc index 406b453c997..f82036fe42e 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr006.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/test.desc index 582d76e266b..52bb0358667 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr007.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/test.desc index d07a6098ce4..75e7eed105e 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr007.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/test.desc index f6c87ba823b..fce3069fea4 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr008.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/test.desc index ba9640346f2..89790b3a972 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr008.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/test.desc index 20f8811d5af..5a51d4f21c5 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr009.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/test.desc index 1de31a7e55e..88f1bbf57f6 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr009.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/test.desc index 83a10ad2d5c..6400721e869 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr010.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/test.desc index 5510cec668c..1f5e7072b80 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr010.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/test.desc index e4eefc1c3d3..ae7e198328d 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr011.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/test.desc index b801132a56e..f8dfe747641 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr011.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/test.desc index 96326149b65..b4668d6d89c 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr012.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/test.desc index 798be8dc284..ab36d18b8e3 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr012.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/test.desc index 8f880015659..a44d21ab0cf 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr013.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/test.desc index 22fe6c7f5c2..25e621382b3 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr013.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/test.desc index c032ba3bf2d..3e202317b62 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr014.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/test.desc index dc61594c857..d5aab26e770 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr014.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/test.desc index fbb4d3e884a..c5035fba058 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr015.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/test.desc index 919e1a9ab96..36606dcf466 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr015.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/test.desc index 50bbc22026a..3c63ff6deb2 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr016.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/test.desc index afd93a03957..2e5e40fccd9 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr016.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/test.desc index 57dbfd67bcf..bd8f0e5221a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr017.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/test.desc index 1775edd7b23..f5ecb100606 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr017.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/test.desc index 9d05b473714..461511f3045 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr018.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/test.desc index 1890dd344eb..83d3cbeb3db 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr018.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/test.desc index b9b4326aeee..3c7e3d6cb2b 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr019.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/test.desc index 6e5212f7fa4..fc60db37f3f 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr019.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/test.desc index b60f1b80bad..dc592d9432c 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr020.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/test.desc index 11e6b32aaa3..e1baa7b7331 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr020.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/test.desc index a2c5c4e0bf5..675c252a75f 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr021.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/test.desc index 8b4dc8a8cbd..c200c6db802 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwdwr021.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/test.desc index cf14cddbe90..e5d54802c8a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwswr000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/test.desc index 60a6e5de00c..047a9664e34 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwswr000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/test.desc index 49b7640c0bc..4822bf9abba 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwswr001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/test.desc index a39dc1c3dbc..baa6609e92a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwswr001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/test.desc index c55093b0b12..731ba470177 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwswr002.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/test.desc index b949b7e5f9d..1e303edeccb 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwswr002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/test.desc index 15da0d4639d..af9ef7b8978 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwswr003.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/test.desc index 465d15bf6ac..4ba209b46b4 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH lwswr003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/test.desc index 321fa1812a1..208b989077e 100644 --- a/regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_mix000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/test.desc index df0b17d49b2..83fafb043c8 100644 --- a/regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_mix000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/test.desc index d02b34974c2..74e27d3858d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrr000.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/test.desc index 2484293573a..776ae15a7c0 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrr000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/test.desc index 70d2288b8b3..bf57004274f 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrr001.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/test.desc index 6d1da8d8808..d4f71963221 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrr001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/test.desc index 073909f17c5..8026f21fe48 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrr002.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/test.desc index 0691e786163..fd145429b60 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrr002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/test.desc index 7dbecb5d6ab..f6300cfcc90 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrr003.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/test.desc index 96943b43f49..af57c416a5d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrr003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/test.desc index 7f5ddee6e8d..17a5bc43da5 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrw000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/test.desc index b5da1ac4722..ac2370a13eb 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrw000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/test.desc index 1af1a428251..10f8bf55797 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrw001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/test.desc index 3f7a795e513..d7d1109302e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrw001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/test.desc index 3acd4eb9dfe..46056a3ef15 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/test.desc index fbd2facbd12..2ef90c689a6 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/test.desc index cb8bfb64117..ac6df164bc8 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/test.desc index 39979f7b8eb..84375a1520e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/test.desc index 17a5a22fe2f..35a5da06133 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr002.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/test.desc index e8cd2c5bf36..2c28467e506 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/test.desc index 7e36c32b269..499f2cf40f1 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr003.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/test.desc index 7f0902a9184..3fdebbc0da6 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/test.desc index dfac4204d5d..357d0d20f0e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr004.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/test.desc index b57c7f6ac92..6b397ab6902 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr004.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/test.desc index 6f472dffdac..90d3a55e49e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr005.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/test.desc index 625222b3ab8..68833cf7397 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr005.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/test.desc index 9f961bae31f..493c0cd3a2e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr006.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/test.desc index 36d9ed70eb8..4b0723b0832 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr006.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/test.desc index d42d93b2c8f..b8eaed474fe 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr007.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/test.desc index 4a3c3088c92..e7f72835b9d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr007.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/test.desc index 8946d0d258e..e7baad8ed87 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr008.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/test.desc index 6392d70d8bb..2914232b80f 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr008.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/test.desc index 80e7857dc38..808b74aef19 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr009.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/test.desc index 37bfe8893a2..339a832af86 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr009.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/test.desc index 9f8a8339340..b766351e5e4 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr010.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/test.desc index 7be1f663155..6de0d8d2c43 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr010.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/test.desc index 7897e78faf3..b0bd68f75e1 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr011.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/test.desc index 4a2c0978ff8..7b2dde11ef1 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr011.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/test.desc index b466983ddb8..99f5e7a1221 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr012.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/test.desc index 5ecc4796c86..ec8dc5bca78 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr012.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/test.desc index 79dc1a8fd41..c8c2948e421 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr013.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/test.desc index 79948f9a362..7e0c28a5b5d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr013.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/test.desc index a4407cbd7e6..c5af9113cc5 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr014.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/test.desc index 9273e6af3ec..b1deef7de25 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr014.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/test.desc index 7a34035ba65..76a8a4112d0 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr015.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/test.desc index 6267f3cce36..ec139762cbb 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podrwposwr015.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/test.desc index 6a551e39df4..6e2917af4e3 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podwr000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/test.desc index 46883c8e982..9c47ff843cf 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podwr000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/test.desc index fd1dc895f75..dcfe4c9c5cf 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podwr001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/test.desc index a204e0ded91..82566e39c24 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podwr001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/test.desc index 5875bf09418..ba56280d02c 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podww000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/test.desc index e08727dcfec..75b09a760fd 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podww000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/test.desc index 6502f39e2c6..d52168fa9cd 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podww001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/test.desc index 8bed94b0ed2..51a21f801bd 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podww001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/test.desc index 340ceda98dc..c1fbf177261 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH posrr000.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/test.desc index 896d9e87802..e15dd01cadc 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG posrr000.c RMO OPC ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/test.desc index 6e0cc50d85b..049d087d966 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH posrr001.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/test.desc index 9fbd34c4e58..1c05515dc2b 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH posrr001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/test.desc index 74d9c253d99..84c3b9eea73 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH posrr002.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/test.desc index e27c2d9fc01..fa7fd38d03e 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH posrr002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/test.desc index 1ee34981081..f9b7650b0a8 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH posrr003.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/test.desc index d9c7c6548e4..61743df6844 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH posrr003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/test.desc index a294a65e7b6..ebfa45d9682 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH posrr004.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/test.desc index 45352cf3c98..dca84a47b42 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH posrr004.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/test.desc index 0ffec82b0f6..6ba240f3acd 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe000.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/test.desc index b69137fe387..cc4803f89e2 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/test.desc index 977e010045f..45a7da8fb78 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe001.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/test.desc index 9aefe5983be..a7211ee5f11 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/test.desc index 3e91d2fe5c3..ca00cfe82dd 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe002.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/test.desc index f7aae19fb95..eea93231ece 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/test.desc index 4a03851849b..48521792628 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe003.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/test.desc index 7470de96258..10f40f46476 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/test.desc index e2d833c6c03..2c08cb7dcb2 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe004.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/test.desc index a7cd2054393..663d836f70d 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe004.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/test.desc index 87ba6c46a67..3b24473baa5 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe005.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/test.desc index 445680c304c..bc752c61b20 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe005.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/test.desc index 00b4f28cef4..97fe27e42d8 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe006.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/test.desc index 730cf08a8c0..69144c37351 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfe006.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/test.desc index 5eabc63a62c..75dc2580e8d 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/test.desc index 6f347493154..8893106493b 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/test.desc index 4315e292617..c8c3476f676 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/test.desc index 6053cd5f512..c9d905c442a 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/test.desc index 30883ee3276..9fe9c0548b8 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi002.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/test.desc index 10067349749..ea26d61db05 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/test.desc index fdb0bead5b3..f99285e9f03 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/test.desc index f810c0e5f1c..7f5a08d84b9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/test.desc index 2dd1498d062..b3180f789af 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/test.desc index 820bf8c6528..00e3393cb17 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/test.desc index 1da159462ab..7bca60e1e70 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe002.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/test.desc index f1a0ecd41fb..a0714c10c4e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/test.desc index e67ac27832c..8fba9f4937b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe003.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/test.desc index b68d8fdc763..5d6ccdca18a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/test.desc index 9f3a4b085db..cbbcb22336f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe004.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/test.desc index 53472b25006..9c68bf2ded2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +KNOWNBUG safe004.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/test.desc index b55046755f5..ebf2da333db 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe004.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/test.desc index db761e5a7b5..0970502dc68 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe005_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe005.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/test.desc index 00b6ed2175d..4377b3d1fb4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe005_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe005.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/test.desc index 19c5f32d7f0..605b59629b8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe006_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe006.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/test.desc index 03907b13ada..3a0ae9d52e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe006_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe006.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/test.desc index dbb1dc62602..448cf3a6bef 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe007.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/test.desc index b3d1cfc7c26..64ac0c24b0a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe007.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/test.desc index 36b5fca0b53..8d8cb1faf0e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe008.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/test.desc index 2c439125145..fa0cf1271f5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe008.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/test.desc index 6a7a492863c..246406d5bf1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe009.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/test.desc index e3304d288c4..5d2125a92ed 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe009.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/test.desc index 96ed8bede9a..920a7e39735 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe010_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe010.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/test.desc index 9fe489331fa..f5f28cda90e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe010_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe010.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/test.desc index 1f42a50e608..a0c68cee927 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe011_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe011.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/test.desc index 66c082a7399..b5dbee83ff0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe011_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe011.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/test.desc index f2d2c77fc4a..9ea0f9fa546 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe012.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/test.desc index 0e195323566..556a4c9f032 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe012.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/test.desc index d0ae4c0ea04..4c5ec3f33f2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe013.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/test.desc index a4db7398af5..0c9707fa628 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe013.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/test.desc index 04f67d8705d..cc067d8d422 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe014_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe014.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/test.desc index 0f036bda206..17bd1b3afce 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe014_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe014.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/test.desc index ebcd28a325f..33cfce731b5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe015_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe015.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/test.desc index a85dea384e5..d5c556c62a8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe015_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe015.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/test.desc index 4139ffa7b34..4ca369b3c36 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe016_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe016.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/test.desc index ea76e09a5b9..1787de06c1f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe016_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe016.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/test.desc index b4623335313..32532e10a12 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe017_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe017.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/test.desc index df0f25628d6..2f56581ab58 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe017_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe017.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/test.desc index 1c1bd5ce591..6260f36beb6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe018_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe018.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/test.desc index 5f246d405bd..ce6c73fac65 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe018_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe018.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/test.desc index e9e0473829b..d8213751097 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe019.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/test.desc index 8fb1d177952..ff91e848e36 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe019.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/test.desc index 67994832ecb..b91229638a6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe020.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/test.desc index 84bcfda851f..1ba35fddb27 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe020.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/test.desc index 5e5bde5f2dd..8d82df32225 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe021.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/test.desc index e0d34f6fec9..622c5b53182 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe021.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/test.desc index ef6374e6d33..d2f018b4468 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe022_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe022.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/test.desc index 9fe6aebb1d2..23779e73c13 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe022_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe022.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/test.desc index 51b1c97b2c6..754e2d901ef 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe023_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe023.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/test.desc index 82771a93dbe..34d37a6a07d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe023_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe023.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/test.desc index 2c40b3cc645..41e4452b737 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe024_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe024.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/test.desc index ac721e62639..9415d685415 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe024_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe024.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/test.desc index d7cf232cdd1..ec21642c14c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe025_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe025.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/test.desc index bca41ee51fe..d78a40df04c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe025_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe025.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/test.desc index 80a5664ecd4..5155d4d5da2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe026_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe026.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/test.desc index e0210f345bf..75398d0d61b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe026_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe026.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/test.desc index 4f77e87fb22..4b5c4e9ae72 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe027.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/test.desc index f2af41bad6a..a43d6d532e9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe027.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/test.desc index bc560f8ef1a..afdc8d0b1f5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe028_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe028.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/test.desc index b13496e5d79..ad5869cdb1a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe028_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe028.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/test.desc index 3006d34520c..a57d7d737bf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe029_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe029.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/test.desc index f4ed748f882..65396879acb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe029_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe029.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/test.desc index 57b034ee030..567039e0771 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe030_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe030.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/test.desc index c12df741345..514b50646a5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe030_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe030.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/test.desc index 48289f28fd7..78eb82e90f3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe031_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe031.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/test.desc index 803f724af04..19decd2e7f2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe031_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe031.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/test.desc index 318cd3f2306..9cb9a0faf19 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe032_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe032.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/test.desc index 5a077ccb648..83963e8da4c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe032_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe032.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/test.desc index 5c9802a12d1..fb431ce278f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe033.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/test.desc index c4d7b57fb7b..79e9969a9a1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe033.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/test.desc index e75035b9e4f..3cb7ed8e9f8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe034.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/test.desc index 80c80698c02..b2a9eea3b2c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe034.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/test.desc index e5242e318e1..d950eaf6c2b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe035_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe035.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/test.desc index 82294ac2fb0..9948c1807f6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe035_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe035.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/test.desc index d935594848c..100c406dbe4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe036_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe036.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/test.desc index 42aefd81f73..17b3650d66f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe036_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe036.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/test.desc index e42dcc09292..7c0d514dac6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe037.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/test.desc index 568b2b1739d..3c6d4aa0b3c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe037.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/test.desc index 97172e8ef1e..e87bd31202f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe038.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/test.desc index d4f2e10039e..6aba5e5c996 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe038.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/test.desc index c68d152f568..0d7eca5da3f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe039_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe039.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/test.desc index 8419eda6858..a1689bbc0d3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe039_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe039.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/test.desc index f9dd1f8e5cf..f5e6838aa88 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe040_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe040.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/test.desc index 80d9db581b5..e78edc7163f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe040_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe040.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/test.desc index 4a4a828c7ff..2fba94cef0a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe041_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe041.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/test.desc index a9fd0f7dce8..1d68bc3624c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe041_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe041.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/test.desc index 1d3ebc68749..b88c9c52738 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe042_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe042.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/test.desc index fab35dc2925..3de83a6a449 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe042_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe042.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/test.desc index 8a099f285de..d8055f304fe 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe043.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/test.desc index fdc32ee863f..1d8223803a9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe043.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/test.desc index b36ecba4fb6..94c86160f5e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe044.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/test.desc index 817f8d15051..bd75f251f6b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe044.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/test.desc index 777bc02ebfc..6b7a4ce2f03 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe045.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/test.desc index 0e238f49e93..c86151edca0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe045.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/test.desc index 1eb406be8e9..412534c2f3f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe046_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe046.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/test.desc index 016371ac476..62310d43320 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe046_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe046.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/test.desc index 0b05ce30b75..66f65eff9a2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe047_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe047.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/test.desc index 9aede34d073..2d292d4030d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe047_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe047.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/test.desc index c414091baad..8d6f3009b37 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe048_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe048.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/test.desc index 98451667ba6..b114ce3c30b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe048_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe048.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/test.desc index ba28104bc9c..a28dab14922 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe049.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/test.desc index e10c3b7557b..e219288cd44 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe049.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/test.desc index a5a76ed05d7..e09331bc153 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe050.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/test.desc index 602ddec9c14..42fea6313e2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe050.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/test.desc index 4707e0d8358..ec4e819aabf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe051.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/test.desc index 9c025c95846..a6e1c4760a4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe051.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/test.desc index e2fdb7fb2b6..facca58995e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe052_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe052.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/test.desc index 407b651dd16..2091d8a413c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe052_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe052.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/test.desc index fbae48dece5..fa4496d31cc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe053_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe053.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/test.desc index 3208604f169..26017e84b0e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe053_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe053.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/test.desc index c8492dc0b06..aa067d83a9f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe054.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/test.desc index 5f9098d29c3..af8db2bbaaf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe054.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/test.desc index 15a50f99420..3aa178dbc8f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe055_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe055.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/test.desc index e5ff4459702..9492127db16 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe055_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe055.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/test.desc index e1498a84405..b378836a818 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe056_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe056.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/test.desc index 14104a631c0..c536f487bc4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe056_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe056.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/test.desc index 0f3a1a363fa..d3035287f4a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe057.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/test.desc index 4738864c35e..d400e7686e8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe057.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/test.desc index f557cc9d1c1..0b540678bb6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe058_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe058.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/test.desc index 997245c5585..70117830f62 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe058_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe058.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/test.desc index 5d141e6a081..f5f283cbdfa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe059_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe059.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/test.desc index 5cb6654b446..8cf5b2eb650 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe059_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe059.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/test.desc index 197b6ac5280..c5df8146b92 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe060_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe060.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/test.desc index 354a752d77e..a1118fa62c1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe060_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe060.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/test.desc index e4c9c175762..c19341605e9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe061.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/test.desc index e5e0551a1ab..7c1fcc567d0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe061.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/test.desc index 0f21af9fe6b..16bf59d2c80 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe062_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe062.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/test.desc index bde016468ec..afc9623a5aa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe062_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe062.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/test.desc index 4ffc1c2981a..3463c1ec9e0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe063_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe063.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/test.desc index c4052f4e7de..6f5b2d0ace1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe063_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe063.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/test.desc index 176bf89d9a6..46ad857c352 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe064_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe064.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/test.desc index 32257ff1b23..1f09a4275cd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe064_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe064.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/test.desc index e5ec7f11a5d..75236769949 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe065.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/test.desc index 1d5eb551768..146a3f1fd59 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe065.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/test.desc index e7794fbd66e..d0af333a6a4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe066_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe066.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/test.desc index cbbb12ffe54..2a57d62ae3e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe066_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe066.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/test.desc index 933b53cab69..a7513057421 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe067_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe067.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/test.desc index 4c2e68aca20..89508174993 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe067_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe067.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/test.desc index e591813de1b..51c6bbe870f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe068_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe068.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/test.desc index fd3b64a22ae..b2e8d386e17 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe068_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe068.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/test.desc index 58ad71804aa..20e18aac79f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe069_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe069.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/test.desc index be103a4f414..8920287c8d7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe069_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe069.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/test.desc index 6fc411c0fe7..79227329759 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe070_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe070.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/test.desc index ff7a54c6724..87c8c7a9326 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe070_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe070.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/test.desc index 5e2acab2287..6bd1d25d847 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe071_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe071.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/test.desc index cc4c5395ce4..119319bada2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe071_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe071.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/test.desc index 2ea0606989f..ef8661b4948 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe072_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe072.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/test.desc index 85d851c0eb7..620020f459d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe072_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe072.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/test.desc index 2cf7acebf95..e2e31184e91 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe073_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe073.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/test.desc index ede8ce394c6..2a667925511 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe073_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe073.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/test.desc index 1333ccad102..6df14d28eed 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe074_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe074.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/test.desc index c3fcedc0fae..044c9c0fd56 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe074_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe074.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/test.desc index e50b7006fb8..81f781f49e9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe075.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/test.desc index 978c2602537..189694d0114 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe075.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/test.desc index 848b2c4479d..5f352628a11 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe076_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe076.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/test.desc index 3d167a8a6a7..7c3126652ac 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe076_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe076.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/test.desc index 83fd404c38f..6cd00368ae3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe077_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe077.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/test.desc index ffaea72144a..13c170526fa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe077_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe077.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/test.desc index 365de3fb704..881ed4288e3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe078.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/test.desc index 96bb49715f4..a1f44fb837b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe078.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/test.desc index a6b15e6dfed..6f4671b2a46 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe079_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe079.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/test.desc index b9ce028e60d..959c6872680 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe079_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe079.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/test.desc index 1e29844e8dd..027d76bb873 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe080_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe080.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/test.desc index e298db11592..f8f3238f9d3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe080_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe080.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/test.desc index a369f4bed0f..d3eaa98a95b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe081_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe081.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/test.desc index fb05040af6f..3911b7a2db0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe081_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe081.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/test.desc index 627b72b9328..d2063cd0e46 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe082_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe082.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/test.desc index 18303bffb25..d74a6c42eaa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe082_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe082.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/test.desc index 71d6d3406aa..33759eab1ed 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe083_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe083.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/test.desc index 3c5ccb273de..8a973cb714e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe083_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe083.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/test.desc index 998f9dffb7e..b4bbb12fd93 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe084_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe084.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/test.desc index 3ee3b320016..e54b516c10c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe084_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe084.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/test.desc index ecec9b31077..e84344d39c4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe085.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/test.desc index 6ce31ce768e..5db3868c544 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe085.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/test.desc index 12a94144859..3e90f7b53cf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe086_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe086.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/test.desc index 8e7eef22ed5..9f443bd83ef 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe086_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe086.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/test.desc index 824397a62dc..6bfcc2b2030 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe087_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe087.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/test.desc index 8276f3b0e36..717b5c8c065 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe087_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe087.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/test.desc index 8c50b5d7544..1e5bdd92196 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe088.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/test.desc index b56680cff1e..d821a69e917 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe088.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/test.desc index 11d93545ff6..94acc6fe6b7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe089_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe089.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/test.desc index f8d8ec0ce94..fd9e7ca2d7c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe089_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe089.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/test.desc index c52552cf300..6d289af4cad 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe090_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe090.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/test.desc index 87ee9b67296..23a01929222 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe090_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe090.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/test.desc index 66e3595c4c5..b3628a36b26 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe091_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe091.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/test.desc index 1ff1c144799..30d7af8b60f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe091_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe091.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/test.desc index e9eb4ae58f1..2b5814c3826 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe092_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe092.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/test.desc index 9b2a4e04a9b..18abc715d48 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe092_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe092.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/test.desc index b9ab198e946..ff39ab7807c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe093_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe093.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/test.desc index 409efa2c702..d5b9f3df6d4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe093_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe093.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/test.desc index a39a38a087b..7b93816fbcc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe094.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/test.desc index a0e10aa7280..0c569033bb7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe094.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/test.desc index dc0b2513b3c..74af9c9690f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe095_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe095.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/test.desc index 012833b6064..cfd0e2e7135 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe095_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe095.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/test.desc index 8f9783f8552..337c0e73a7a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe096_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe096.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/test.desc index 469b7f7bcbb..eac6a133b58 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe096_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe096.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/test.desc index 8e077b0be4d..5dbeb7c7bce 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe097_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe097.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/test.desc index 7647eddbb35..6f67b5ec51f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe097_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe097.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/test.desc index 281921bd505..f70cc025dd1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe098.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/test.desc index d42a9c9cf1e..e77fb20c143 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe098.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/test.desc index fff487fa0da..565c4827158 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe099_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe099.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/test.desc index 233f84d0f95..c6ee8efda55 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe099_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe099.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/test.desc index 64c2de08725..67516401991 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe100_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe100.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/test.desc index c209db1c22a..b48de62e349 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe100_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe100.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/test.desc index 7c8c72f63db..afe49b8fb21 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe101_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe101.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/test.desc index 13afd66ef43..76a1f3f51b4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe101_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe101.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/test.desc index 2fdeebb6e0f..b340b52f00b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe102_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe102.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/test.desc index b60819a57e3..bd9d5edb290 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe102_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe102.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/test.desc index 7ae701a073c..6c30e840b40 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe103_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe103.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/test.desc index abdafd72ba3..3a3ed42593e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe103_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe103.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/test.desc index ba7f233e73f..f82ee1f2f21 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe104.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/test.desc index 3a64b166838..e7934d13644 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe104.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/test.desc index 4e84205910c..beabef92b3f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe105.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/test.desc index b5c7e11cd43..36ffd0b72af 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe105.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/test.desc index c743e0b21ff..b6b278b2201 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe106_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe106.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/test.desc index b2dcde5f150..f1eae982370 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe106_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe106.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/test.desc index 60fcc16b193..d75a36a73b0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe107_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe107.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/test.desc index 0ebadb5a6b6..d0f42e6589f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe107_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe107.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/test.desc index 43ab66b6b59..930c633aeb0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe108_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe108.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/test.desc index 7f920ed602a..556c3650f11 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe108_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe108.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/test.desc index 905706d140c..dc22f96cf85 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe109_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe109.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/test.desc index 74ed718e781..15f5203076b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe109_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe109.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/test.desc index b7a66fa2850..7056ece58c8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe110_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe110.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/test.desc index 1e9259f286e..a8b8c8a9542 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe110_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe110.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/test.desc index 1befdd4a9d6..1a0738ae822 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe111_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe111.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/test.desc index 8870392e8b6..145bab1bfea 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe111_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe111.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/test.desc index f01a98530c0..f3bb40c5422 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe112.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/test.desc index 7239ab3c218..23ec1fafe55 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe112.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/test.desc index 9f363e30a45..7d91036c3d6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe113_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe113.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/test.desc index 0218d62b13d..e4defd730f2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe113_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe113.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/test.desc index c882e8f37f8..967b0da2c7d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe114_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe114.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/test.desc index af4bce13dcb..b192f1ea81e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe114_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe114.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/test.desc index 628438daa38..63162275bc5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe115.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/test.desc index 372209a1788..f2dc0f0198a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe115.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/test.desc index dcc6af99c0c..457d4f4aba9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe116.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/test.desc index 22e6cefb561..0eaa4953611 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe116.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/test.desc index fee34599fe8..187042a53e1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe117_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe117.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/test.desc index ff74b5dfacf..7659ad4a1f9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe117_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe117.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/test.desc index bc15247d985..039de36aca6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe118_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe118.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/test.desc index 2b125cc3e38..42f96a163a2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe118_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe118.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/test.desc index 5459c5aa5e1..359217e6b94 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe119_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe119.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/test.desc index d47b4350d59..1b55081476f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe119_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe119.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/test.desc index 7ec23a62f91..f4b15cf1bb8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe120_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe120.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/test.desc index 2572ce76f51..1398fb7bc41 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe120_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe120.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/test.desc index f57f1dad188..0d0861e3df1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe121_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe121.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/test.desc index cb9b56926c5..7a9a969f1ff 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe121_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe121.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/test.desc index 2bd9c2651ce..8051e4eca79 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe122.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/test.desc index 6334c2f01e5..0e487b1a368 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe122.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/test.desc index b2e5022988e..5f9aa5416ca 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe123_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe123.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/test.desc index 84212e17bdc..4c3891738f3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe123_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe123.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/test.desc index 5791c0768f9..eb565298c38 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe124_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe124.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/test.desc index 64d3daeca8a..cf4a3223b9f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe124_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe124.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/test.desc index 2b29052790a..f9d97fb4e5d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe125_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe125.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/test.desc index 6a1e26e0ff1..3cae1d97a7e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe125_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe125.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/test.desc index 362d249e93b..99291f65788 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin000_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin000.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/test.desc index 04100b1da57..37a0b6e7493 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/test.desc index 17d7240679f..ff04027699d 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin001_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin001.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/test.desc index ddb40c90b02..b70e6b95228 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/test.desc index 0fc914276a9..7c77ee04b86 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin002_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin002.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/test.desc index 75ac393cf73..68e8ebe7dd9 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/test.desc index 1846a7d19dd..b7d31882605 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin003_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin003.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/test.desc index c95e9c18804..14ad253fb2d 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/test.desc index e5d00def167..7d3790d7b1e 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin004_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin004.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/test.desc index 7068a5076f0..2c1da390f04 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin004_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin004.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/test.desc index 0b66c859a1e..199c426d4f0 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin005_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin005.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/test.desc index 0625d2c6419..3bcdee6dbbc 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin005_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin005.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/test.desc index 071f3e20dad..37224b5898d 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin006_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin006.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/test.desc index aaafb6edf09..7574798fd87 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin006_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin006.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/test.desc index 96588f4ecaf..bd93d46f142 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin007_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin007.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/test.desc index 3c810f68290..6715c333b19 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin007_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin007.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/test.desc index 321fa1812a1..208b989077e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/test.desc index df0b17d49b2..83fafb043c8 100644 --- a/regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/test.desc index 423f712e1df..e1fb21f6fb2 100644 --- a/regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/test.desc index 2a6235dc105..b216dd6e04c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/test.desc index ee9d8d44af0..85c18932c11 100644 --- a/regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix002_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix002.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/test.desc index c49094ea385..1f73b71a0e7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/test.desc index 2792e6db8b8..e017eb17239 100644 --- a/regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix003_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix003.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/test.desc index 93827ed6f61..1efd8ec48f3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/test.desc index 1b144d56847..052214c1043 100644 --- a/regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix004_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix004.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/test.desc index 42057df14af..5453c22d1f3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix004_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix004.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/test.desc index 2471487d26c..75e5d29dda6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix005_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix005.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/test.desc index 4acdae0ead5..e0440dc2052 100644 --- a/regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix005_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix005.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/test.desc index 719e60ca8d0..f15947ee4c3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix006_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix006.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/test.desc index 0e298576a69..832a4956eb7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix006_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix006.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/test.desc index f7c7ec3bd7d..32f64a531eb 100644 --- a/regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix007_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix007.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/test.desc index b24f0431e34..17153a91ba6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix007_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix007.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/test.desc index bdf3995fdb2..c168ce8b07a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix008_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix008.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/test.desc index 2a5f3a3d8ed..5c09e467b84 100644 --- a/regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix008_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix008.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/test.desc index 67b8fa74b9e..e26f1688598 100644 --- a/regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix009_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix009.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/test.desc index b656bce5d8b..17426c6d99e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix009_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix009.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/test.desc index d8667efb79c..9f6b79933fa 100644 --- a/regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix010_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix010.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/test.desc index 8f3d12d098a..53c25476b43 100644 --- a/regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix010_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix010.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/test.desc index 41cb5dff72e..786f5bdd0d7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix011_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix011.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/test.desc index 2a6953226f4..6ff48be6db7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix011_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix011.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/test.desc index e9cc337f34e..0b3387dd3b1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix012_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix012.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/test.desc index ff4bddafb98..4d59a92baa8 100644 --- a/regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix012_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix012.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/test.desc index 9e38a397124..d07622595aa 100644 --- a/regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix013_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix013.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/test.desc index 27cfd0926e6..ae72e8a2a12 100644 --- a/regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix013_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix013.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/test.desc index ae2279711c0..5244ae633c8 100644 --- a/regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix014_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix014.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/test.desc index 9093819286d..4b10ed983b8 100644 --- a/regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix014_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix014.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/test.desc index 46752d0e7f4..a46c35dd2ef 100644 --- a/regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix015_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix015.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/test.desc index 2a5cbbef560..f867d70b256 100644 --- a/regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix015_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix015.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/test.desc index ea74bb5a701..0f9034cd1f9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix016_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix016.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/test.desc index 9aae26d2fde..4e3a5f68893 100644 --- a/regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix016_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix016.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/test.desc index 77ff2604770..e5e391d8edd 100644 --- a/regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix017_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix017.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/test.desc index 3f3246953fa..fb30fc795be 100644 --- a/regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix017_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix017.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/test.desc index fb353c16154..85c56900420 100644 --- a/regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix018_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix018.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/test.desc index 02001a68f5e..9ec4d0b1830 100644 --- a/regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix018_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix018.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/test.desc index 875296c3550..e7136e3e6a7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix019_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix019.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/test.desc index f03e63977e7..2cdb7c3fd98 100644 --- a/regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix019_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix019.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/test.desc index 83a9f9cc35f..e17ff4aa738 100644 --- a/regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix020_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix020.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/test.desc index 4dae2e39285..aa174613cf3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix020_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix020.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/test.desc index 6520ab65f7d..b1da32c9903 100644 --- a/regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix021_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix021.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/test.desc index b13b857ec04..9635973d666 100644 --- a/regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix021_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix021.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/test.desc index 1aa6f26cebc..125a7d82396 100644 --- a/regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix022_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix022.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/test.desc index 91bbb501ada..f290d75321e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix022_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix022.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/test.desc index 894914fd6ea..00355eee15f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix023_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix023.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/test.desc index be0a8aa4964..f7cc691a41b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix023_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix023.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/test.desc index 75908edc804..849c18fc591 100644 --- a/regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix024_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix024.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/test.desc index d2348b9c304..d9e4ca04a9d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix024_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix024.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/test.desc index 8a7a53a3bf4..49d045fedd1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix025_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix025.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/test.desc index f2f4d955506..e685174818f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix025_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix025.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/test.desc index e40e6b101d7..c731b502378 100644 --- a/regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix026_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix026.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/test.desc index 461f2a12ff5..c903fdbb711 100644 --- a/regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix026_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix026.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/test.desc index cf6cf9b3b92..25b95ea6503 100644 --- a/regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix027_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix027.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/test.desc index 9bbfc12e13f..4171b589129 100644 --- a/regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix027_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix027.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/test.desc index 57fdcad4c14..46395b27042 100644 --- a/regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix028_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix028.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/test.desc index fc5cc8c38d2..763ac535bdf 100644 --- a/regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix028_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix028.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/test.desc index e83cb3c966f..e54e45446de 100644 --- a/regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix029_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix029.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/test.desc index 91b289116e1..703e3980ae8 100644 --- a/regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix029_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix029.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/test.desc index ede2af5c8a2..d12937ffdd7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix030_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix030.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/test.desc index a70fabd2b73..fbfbc8d672b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix030_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix030.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/test.desc index 481b8dc913d..0bde3cc98b9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix031_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix031.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/test.desc index 1375ec90293..a20a6b06beb 100644 --- a/regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix031_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix031.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/test.desc index ee644199c24..823ee2ded83 100644 --- a/regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix032_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix032.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/test.desc index 5cc4ff25e37..5dce86cde7d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix032_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix032.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/test.desc index a5e42db7d22..da8155bd1da 100644 --- a/regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix033_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix033.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/test.desc index 0d15aefa685..33ce5500a2c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix033_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix033.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/test.desc index 6e98029037f..bd36ac3c2aa 100644 --- a/regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix034_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix034.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/test.desc index 996ad273dba..4cd7a449aa5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix034_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix034.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/test.desc index af54b8a0604..c9b577390a0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix035_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix035.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/test.desc index d6eb0405f1d..34c4acb319e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix035_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix035.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/test.desc index 3f83e4f25bc..e1325717d9a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix036_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix036.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/test.desc index 75591bf7cae..c65a105e27d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix036_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix036.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/test.desc index 59ff598762c..c40485d9c42 100644 --- a/regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix037_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix037.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/test.desc index 059bf5ea15e..945758dc0ee 100644 --- a/regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix037_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix037.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/test.desc index 06257bdfbc9..2e2c1fff574 100644 --- a/regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix038_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix038.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/test.desc index 5315581fea8..accf6aaff50 100644 --- a/regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix038_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix038.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/test.desc index aca21743b01..5c2f703bdad 100644 --- a/regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix039_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix039.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/test.desc index e80a4c86585..bd4f8835190 100644 --- a/regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix039_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix039.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/test.desc index 388cd5c9bd5..61f2210424c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix040_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix040.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/test.desc index 65bd1a35353..fa16ff7bf67 100644 --- a/regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix040_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix040.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/test.desc index 994d99b04a0..528acfb8ae5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix041_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix041.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/test.desc index 9b25b4d9729..046ea4220db 100644 --- a/regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix041_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix041.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/test.desc index babe93d08a1..2afd83811af 100644 --- a/regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix042_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix042.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/test.desc index 21bffa97bb9..a50be0cbebe 100644 --- a/regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix042_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix042.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/test.desc index 3f8f40fed53..808f9521756 100644 --- a/regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix043_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix043.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/test.desc index 0113bd7dfda..1d55ccd1763 100644 --- a/regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix043_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix043.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/test.desc index d958587b6b9..423c7f4d64a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix044_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix044.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/test.desc index 6e79d70ced7..7de54a3fa1f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix044_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix044.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/test.desc index 616a5a4b46b..7de59f43389 100644 --- a/regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix045_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix045.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/test.desc index 1759bcac87f..34820334090 100644 --- a/regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix045_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix045.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/test.desc index d6f355c54dd..5a1ccc78ae3 100644 --- a/regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix046_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix046.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/test.desc index 3aa8e912fa9..83a68f5661d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix046_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix046.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/test.desc index df00b601e29..ef05b0e2b5a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix047_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix047.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/test.desc index 76364e240e0..fba3ff1699b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix047_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix047.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/test.desc index 253dc569999..857fa960b79 100644 --- a/regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix048_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix048.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/test.desc index cddb18eabe4..71ef703a679 100644 --- a/regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix048_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix048.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/test.desc index 6ae8fa688cc..fac53b31aad 100644 --- a/regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix049_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix049.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/test.desc index 95592caefe8..fd270a9d5b0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix049_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix049.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/test.desc index 2f91e488b50..c43da1d9c49 100644 --- a/regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix050_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix050.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/test.desc index 08c78041eeb..3eb169043ad 100644 --- a/regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix050_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix050.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/test.desc index c15494cbb91..5b49af0ab99 100644 --- a/regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix051_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix051.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/test.desc index 26a2067a38a..d76312457e7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix051_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix051.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/test.desc index b914fe215ab..e570f582225 100644 --- a/regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix052_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix052.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/test.desc index 5c27c33710e..40c01e7701d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix052_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix052.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/test.desc index 486b51af5f3..521f2bc081c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix053_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix053.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/test.desc index e121c8e1c56..e2b6b737432 100644 --- a/regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix053_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix053.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/test.desc index 85c638170ba..d0201130355 100644 --- a/regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix054_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix054.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/test.desc index cb48a65f008..e7fcfd4d09a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix054_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix054.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/test.desc index c4c6542e066..90dde7ce644 100644 --- a/regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix055_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix055.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/test.desc index ccf54cf7a64..e2cab786164 100644 --- a/regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix055_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix055.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/test.desc index 7e71d7592df..04a40e5c70f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix056_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix056.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/test.desc index e7a9d72b08d..3ef9d0b6ffe 100644 --- a/regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix056_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix056.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/test.desc index fe7025566b3..dd2e5859d81 100644 --- a/regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix057_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix057.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/test.desc index 82e89bcf86a..1a293303afd 100644 --- a/regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix057_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH mix057.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/test.desc index 6a551e39df4..6e2917af4e3 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podwr000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/test.desc index 46883c8e982..9c47ff843cf 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podwr000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/test.desc index fd1dc895f75..dcfe4c9c5cf 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podwr001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/test.desc index a204e0ded91..82566e39c24 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH podwr001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/test.desc index 5eabc63a62c..75dc2580e8d 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/test.desc index 6f347493154..8893106493b 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/test.desc index 4315e292617..c8c3476f676 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/test.desc index 6053cd5f512..c9d905c442a 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/test.desc index 30883ee3276..9fe9c0548b8 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi002_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi002.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/test.desc index 10067349749..ea26d61db05 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/test.desc index 86f096f22b9..87337439b3d 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi003_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi003.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/test.desc index 5b4a48d00cc..51d2a7b057a 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/test.desc index 60542149352..12b6c354a66 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi004_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi004.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/test.desc index a258f47bef4..2ecbb956b76 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi004_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi004.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/test.desc index f754e68ce30..1e9e54a646a 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi005_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi005.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/test.desc index d5813c8dca8..b1b75854cb4 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi005_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi005.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/test.desc index fbec6bc3847..c9034cb342b 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi006_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi006.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/test.desc index fafa684d34d..09b834087e8 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi006_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi006.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/test.desc index 65d0eb337e3..2f7691e2fd6 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi007_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi007.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/test.desc index ab4c6ddbe47..898305fba31 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi007_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi007.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/test.desc index 1529f165e2b..e23486ef4c5 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi008_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi008.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/test.desc index eaea3e47d38..29b9b16248b 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi008_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi008.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/test.desc index c537ac25d22..20149340875 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi009_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi009.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/test.desc index e96120b0851..96ab0e2a0bb 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi009_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi009.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/test.desc index 3f1f13bd106..32a410470a1 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi010_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi010.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/test.desc index 0ea8cf39cee..dd5c1fd37c2 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi010_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH rfi010.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/test.desc index fdb0bead5b3..f99285e9f03 100644 --- a/regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe000_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe000.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/test.desc index f810c0e5f1c..7f5a08d84b9 100644 --- a/regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/test.desc index 2dd1498d062..b3180f789af 100644 --- a/regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe001_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe001.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/test.desc index 820bf8c6528..00e3393cb17 100644 --- a/regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/test.desc index 1da159462ab..7bca60e1e70 100644 --- a/regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe002_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe002.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/test.desc index f1a0ecd41fb..a0714c10c4e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe002.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/test.desc index e67ac27832c..8fba9f4937b 100644 --- a/regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe003_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe003.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/test.desc index b68d8fdc763..5d6ccdca18a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe003_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe003.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/test.desc index 9f3a4b085db..cbbcb22336f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe004_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe004.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/test.desc index b55046755f5..ebf2da333db 100644 --- a/regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe004_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe004.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/test.desc index db761e5a7b5..0970502dc68 100644 --- a/regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe005_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe005.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/test.desc index 00b6ed2175d..4377b3d1fb4 100644 --- a/regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe005_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe005.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/test.desc index 6414baa8632..3770855cc3a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe006_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe006.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/test.desc index 03907b13ada..3a0ae9d52e7 100644 --- a/regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe006_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe006.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/test.desc index 940d6f9a150..3fec95d3f87 100644 --- a/regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe007_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe007.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/test.desc index b3d1cfc7c26..64ac0c24b0a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe007_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe007.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/test.desc index 36b5fca0b53..8d8cb1faf0e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe008.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/test.desc index 2c439125145..fa0cf1271f5 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe008.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/test.desc index 6a7a492863c..246406d5bf1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe009_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe009.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/test.desc index e3304d288c4..5d2125a92ed 100644 --- a/regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe009_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe009.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/test.desc index 96ed8bede9a..920a7e39735 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe010.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/test.desc index 9fe489331fa..f5f28cda90e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe010.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/test.desc index 1f42a50e608..a0c68cee927 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe011.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/test.desc index 66c082a7399..b5dbee83ff0 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe011.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/test.desc index c2ffcd00318..e98c71a67a4 100644 --- a/regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe012_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe012.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/test.desc index 0e195323566..556a4c9f032 100644 --- a/regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe012_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe012.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/test.desc index d0ae4c0ea04..4c5ec3f33f2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe013.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/test.desc index a4db7398af5..0c9707fa628 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe013.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/test.desc index 04f67d8705d..cc067d8d422 100644 --- a/regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe014_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe014.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/test.desc index 0f036bda206..17bd1b3afce 100644 --- a/regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe014_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe014.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/test.desc index ebcd28a325f..33cfce731b5 100644 --- a/regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe015_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe015.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/test.desc index a85dea384e5..d5c556c62a8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe015_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe015.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/test.desc index 4139ffa7b34..4ca369b3c36 100644 --- a/regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe016_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe016.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/test.desc index ea76e09a5b9..1787de06c1f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe016_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe016.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/test.desc index b4623335313..32532e10a12 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe017.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/test.desc index df0f25628d6..2f56581ab58 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe017.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/test.desc index 78b850749e5..d8e8851910f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe018_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe018.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/test.desc index 5f246d405bd..ce6c73fac65 100644 --- a/regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe018_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe018.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/test.desc index e9e0473829b..d8213751097 100644 --- a/regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe019_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe019.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/test.desc index 8fb1d177952..ff91e848e36 100644 --- a/regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe019_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe019.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/test.desc index 67994832ecb..b91229638a6 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe020.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/test.desc index 84bcfda851f..1ba35fddb27 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe020.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/test.desc index 5e5bde5f2dd..8d82df32225 100644 --- a/regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe021_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe021.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/test.desc index e0d34f6fec9..622c5b53182 100644 --- a/regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe021_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe021.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/test.desc index 32a2e7631b6..3b4c368e942 100644 --- a/regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe022_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe022.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/test.desc index 9fe6aebb1d2..23779e73c13 100644 --- a/regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe022_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe022.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/test.desc index 51b1c97b2c6..754e2d901ef 100644 --- a/regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe023_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe023.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/test.desc index 82771a93dbe..34d37a6a07d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe023_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe023.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/test.desc index d9fdaa08057..e4ac3c7a884 100644 --- a/regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe024_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe024.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/test.desc index ac721e62639..9415d685415 100644 --- a/regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe024_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe024.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/test.desc index 9d230714965..3c931313d74 100644 --- a/regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe025_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe025.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/test.desc index bca41ee51fe..d78a40df04c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe025_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe025.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/test.desc index 80a5664ecd4..5155d4d5da2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe026_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe026.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/test.desc index e0210f345bf..75398d0d61b 100644 --- a/regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe026_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe026.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/test.desc index 154fd2b6907..b7b1cf12219 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe027.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/test.desc index f2af41bad6a..a43d6d532e9 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe027.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/test.desc index bc560f8ef1a..afdc8d0b1f5 100644 --- a/regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe028_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe028.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/test.desc index b13496e5d79..ad5869cdb1a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe028_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe028.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/test.desc index 3006d34520c..a57d7d737bf 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe029.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/test.desc index f4ed748f882..65396879acb 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe029.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/test.desc index 57b034ee030..567039e0771 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe030.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/test.desc index c12df741345..514b50646a5 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe030.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/test.desc index 48289f28fd7..78eb82e90f3 100644 --- a/regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe031_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe031.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/test.desc index 803f724af04..19decd2e7f2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe031_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe031.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/test.desc index 318cd3f2306..9cb9a0faf19 100644 --- a/regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe032_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe032.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/test.desc index 5a077ccb648..83963e8da4c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe032_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe032.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/test.desc index 5c9802a12d1..fb431ce278f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe033.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/test.desc index c4d7b57fb7b..79e9969a9a1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe033.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/test.desc index e75035b9e4f..3cb7ed8e9f8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe034_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe034.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/test.desc index 80c80698c02..b2a9eea3b2c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe034_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe034.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/test.desc index e5242e318e1..d950eaf6c2b 100644 --- a/regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe035_CAV11_ERROR/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe035.c CAV11 ERROR ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/test.desc index 82294ac2fb0..9948c1807f6 100644 --- a/regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe035_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe035.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/test.desc index 23e7eccd663..3407a07db79 100644 --- a/regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe036_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe036.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/test.desc index 42aefd81f73..17b3650d66f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe036_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe036.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/test.desc index e22722c0b85..25b594927aa 100644 --- a/regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe037_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe037.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/test.desc index 568b2b1739d..3c6d4aa0b3c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe037_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH safe037.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/test.desc index 362d249e93b..99291f65788 100644 --- a/regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin000_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin000.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/test.desc index 04100b1da57..37a0b6e7493 100644 --- a/regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin000_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin000.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/test.desc index 17d7240679f..ff04027699d 100644 --- a/regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin001_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin001.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/test.desc index ddb40c90b02..b70e6b95228 100644 --- a/regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin001_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin001.c SC SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/test.desc index 0fc914276a9..7c77ee04b86 100644 --- a/regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin002_CAV11_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin002.c CAV11 SAFE ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/test.desc index 75ac393cf73..68e8ebe7dd9 100644 --- a/regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin002_SC_SAFE/test.desc @@ -1,4 +1,4 @@ -KNOWNBUG +THOROUGH thin002.c SC SAFE ^EXIT=10$ From 947b9131c5ba0942dd5e98cb09cc5e5bb857e9c4 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Wed, 17 Mar 2021 18:57:20 +0000 Subject: [PATCH 23/25] goto-instrument-wmm tests: flip "THOROUGH" to "CORE" These tests currently pass and each of them completes in under 1 second. --- .../goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc | 2 +- .../ppc_iriw+lwsync+addr_POWER_OPT/test.desc | 2 +- .../ppc_iriw+lwsync+addr_PSO_OPT/test.desc | 2 +- .../ppc_iriw+lwsync+addr_RMO_OPT/test.desc | 2 +- .../ppc_iriw+lwsync+addr_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr000_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr000_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr000_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr000_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr001_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr001_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr001_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr002_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr002_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr002_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr003_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr003_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr003_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr004_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr004_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr004_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr004_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr005_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr005_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr005_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr005_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr006_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr006_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr006_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr007_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr007_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr007_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr008_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr008_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr008_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr009_POWER_OPT/test.desc | 2 +- .../ppc_podrwposwr009_PSO_ALL/test.desc | 2 +- .../ppc_podrwposwr009_PSO_OPC/test.desc | 2 +- .../ppc_podrwposwr009_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr009_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr009_TSO_ALL/test.desc | 2 +- .../ppc_podrwposwr009_TSO_OPC/test.desc | 2 +- .../ppc_podrwposwr009_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr010_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr010_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr010_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr011_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr011_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr011_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr012_PSO_ALL/test.desc | 2 +- .../ppc_podrwposwr012_PSO_OPC/test.desc | 2 +- .../ppc_podrwposwr012_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr012_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr012_TSO_ALL/test.desc | 2 +- .../ppc_podrwposwr012_TSO_OPC/test.desc | 2 +- .../ppc_podrwposwr012_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr013_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr013_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr013_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr014_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr014_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr014_TSO_OPT/test.desc | 2 +- .../ppc_podrwposwr015_PSO_OPT/test.desc | 2 +- .../ppc_podrwposwr015_RMO_OPT/test.desc | 2 +- .../ppc_podrwposwr015_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww000_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww000_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww001_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww001_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe002_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe002_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe002_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe002_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe003_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe003_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe003_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe003_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe004_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe004_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe004_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe004_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe027_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe027_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe028_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe028_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe043_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe043_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe049_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe049_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe050_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe050_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe051_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe051_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe052_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe052_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe054_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe054_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe075_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe075_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe075_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe075_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe078_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe078_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe078_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe078_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe085_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe085_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe085_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe085_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe085_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe085_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe088_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe088_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe088_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe088_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe088_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe088_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe094_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe094_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe094_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe094_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe094_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe094_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe104_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe104_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_POWER_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_POWER_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe112_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe112_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe112_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe112_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe115_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe115_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe116_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe116_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe116_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe116_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe116_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe116_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe122_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe122_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe122_RMO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe122_RMO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe122_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe122_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe008_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe008_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe010_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe010_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe011_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe011_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe013_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe013_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe017_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe017_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe020_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe020_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe020_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe020_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe027_PSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe027_PSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe027_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe027_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe029_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe029_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe030_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe030_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe033_TSO_ALL/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe033_TSO_OPC/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc | 2 +- .../goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc | 2 +- 1509 files changed, 1509 insertions(+), 1509 deletions(-) diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc index c462aa9edeb..c72ab77e25d 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc index f594dcb042f..eba231d8d80 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc index 9766fc6652d..15918a0197d 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc index d3ff31e1775..421fe5c3cad 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc index 4fc62c14b49..4d2108be407 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc index c230cbee7b8..a02669786dd 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc index b1f99d5dc3d..f43f07704f8 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc index 69678538202..512a40019d3 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc index c461011cbc9..8c19a3920fb 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc index 84178307b61..ee1c18f4077 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/test.desc index 3264870f732..c16486c7dd5 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE aclwdrr002.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/test.desc index bdaee3cac1a..b0cc4fd2c31 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE aclwdrr002.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc index 808b588f2d1..f61fb2a2487 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc index 2d41523493a..bb9117a6654 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc index 22fab0fbaa7..15df87102a3 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc index 8199a7e992b..22cc7fb4dc7 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr003.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc index 66b05ca5221..8c0ab874b0d 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc index a19f98b963e..06a6e562ae4 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr004.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc index d19f4ff4316..2b89d796c33 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc index 9cf1d79ac64..cc720d2605a 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr004.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc index 169f18f4d60..f249be9788b 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc index e47bece8ba7..55415e0a2d7 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr005.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc index 9d2231f290b..d5a56e918c1 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc index 9213e08e500..28e44fd0d24 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr005.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc index 733769627d0..456e5811bb4 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc index 4e74d5549e0..c8f7fe38101 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr006.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc index 7123dda19fa..dd003e0a479 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc index f22f91f45a0..8166de2956a 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr006.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/test.desc index e0641732ef4..77fca753a6c 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE aclwdrr006.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/test.desc index ba7942a681c..c284f610454 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE aclwdrr006.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc index a5542723684..6f51d592ce4 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc index cbdb08c12ae..3599bee3f68 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr007.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc index a8e48525f6b..bd4c833cad1 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc index 69a3b88aca0..b0d2a1153a9 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr007.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc index 8dd3c4cef63..67ea93f2ec9 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc index 3792408449c..ad6acd89c2e 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr008.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc index 1eeb9a05e60..926e66b47c2 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr008.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc index 9ce00d59d0f..cf651e9e636 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr008.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc index c2b85dec766..a604fce354c 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr008.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc index dd18bddfb75..8895c6dd53e 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr009.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc index 1cbb847e97c..555d026fd14 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr009.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc index 6969a07c785..40a28de897d 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr009.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc index ec6c81f6e47..2b3aa700004 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr010.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc index 6401ec88c25..13058a3e61e 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr010.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc index 2b3cd8cc874..eba16ef06f4 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr010.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc index 3af060d3311..787118bcfbb 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr011.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc index fceb7c3c47d..39b3c080d48 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr011.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc index 87b4890fe44..36fb607da51 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr011.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc index 43bef495714..b5a07b1f057 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr012.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc index df658426145..d82e0376f16 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr012.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc index f1020cd974e..0d270c29d87 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr012.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc index 457627e7966..814b4ee36a5 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr012.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc index bdb2a8e0681..d8ce9ea43f3 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr013.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc index 7f197e286ee..bac9e768aa5 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr013.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc index 98c1882725a..cef45790124 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr013_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr013.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc index cf1709ee783..a4130b448c6 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr014.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc index d19027f47d5..4a304a81cf8 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr014.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc index f1a7b6e7f41..45c2b3d6359 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr014.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc index 3ee03ba28e6..f48b0a688b0 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr014_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr014.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc index 869a8345b74..1c09f7375af 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr015.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc index 879279ce32f..9ec942db1f5 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr015.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc index 3f638ddecb3..f13a41601cc 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr015.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc index d0db1ea4117..9a8fb234c8b 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwdrr015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwdrr015.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc index fd9a148c050..69b2c5b9ed0 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc index e1c544fbece..e93cfa04443 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc index 373187f5b7b..521ab2ce883 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc index 2137955fe6a..08f26113238 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc index cc4fb019ff5..6f570dedf7f 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr001.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc index d4b10667f9a..0882c613947 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc index a19ade5ab20..0183ab13d16 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc index 5769e0a6da5..31642505d14 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc index 5bc37a5e23d..1f388d4182e 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr002.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc index 35e1fc40de3..9f9a7fb1219 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc index 092a2baee0d..a9b5491d11b 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc index 988929d09d4..66fb914d432 100644 --- a/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_aclwsrr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk aclwsrr002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc index 5906bbe020b..4e64cd740a4 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc index cad757df38d..d3f1e08107f 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc index 7eb3f5a216c..1cd45679f08 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/test.desc index 5072ed1def4..9f7940f6d8b 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE bclwdww000.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/test.desc index 4cce432dea7..ae0ef9faf1b 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE bclwdww000.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc index 32a47721603..f03e1c78dee 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc index 73abbcb23ea..9de3c4b5bd3 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc index 6fed2e3ded5..3e9a0c34ddd 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc index 12ae38c5ba1..b0e4924d582 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc index 73c1bc820ec..70d817323c3 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc index 256901503a9..bc021c618f3 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc index 1787441c266..db53f253585 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc index 9d1a4238947..ce185949a5a 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc index 38361ca9d26..c1dea9a1315 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww003.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc index e08ddfddebe..d3d79262538 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc index 02a07787de6..be1322d2f1d 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc index 2e52d3ba835..c7f85bd8a28 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww004.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc index 94986777d03..4f72b990695 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc index 5fedfb2160f..54b69ed55ed 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc index d2f03bffc67..a05c6cf3878 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww005.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc index 8fd230b3921..0144166a987 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc index 0c1c4d5d25d..f34198625b4 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc index 88c981c0b2d..4d64db9ce29 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww006.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc index d6817dbaf65..c9e1f57bbb0 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc index 61842b275e5..0f3ca16931c 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc index 847a3685b66..9f326899510 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww007.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/test.desc index 092959784e4..bbe854beba4 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE bclwdww007.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/test.desc index f885731e971..0b623e6663e 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE bclwdww007.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc index 582e49d22b5..561d4cd1f71 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc index d3e008aad4f..535434baa11 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc index 492a713cdaa..3a6216003b0 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww009.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc index 034ba4c7da4..34e16434de1 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww009.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc index ea199d0b3aa..a85ef1e9bbc 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwdww009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwdww009.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc index 246b59fa989..d8f3df9a705 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwsww000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc index b0ef38f705e..6bf59a2cf98 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwsww000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc index dea40b5bb9f..5baf9f0e604 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwsww000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc index 910d79cecda..b6495d2fc54 100644 --- a/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_bclwsww000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk bclwsww000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc index 60c8a07ef67..7b8f72eb817 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk iriw+addrs.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc index dad0c3709aa..e717df7ae57 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk iriw+addrs.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc index af86f3a6017..3aebf15a537 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk iriw+addrs.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc index d2bbae578de..c6a2650eb8f 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+addrs_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk iriw+addrs.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc index 57bddab5f22..309af8b4dbc 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk iriw+lwsync+addr.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc index 4fbc0ce7f34..051ef59635c 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk iriw+lwsync+addr.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc index dce742d23e2..d9842c45f09 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk iriw+lwsync+addr.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc index d4395bc116b..ac3280e7fe0 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsync+addr_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk iriw+lwsync+addr.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc index 9cc513ec21e..e60e3f796eb 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk iriw+lwsyncs.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc index 1b538d48a4d..6ef35998742 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk iriw+lwsyncs.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc index 6b7ef31fb9b..1ab158b27bd 100644 --- a/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_iriw+lwsyncs_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk iriw+lwsyncs.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc index 620980f8da7..809f9b7476d 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc index a8582346dcd..054b92039d8 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc index 1d31a26657b..d87fea21ee8 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc index 2997e259dfb..9361850eb7e 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc index 1b1209aefda..da36f57faa5 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc index 7a443ae18f2..182e56f0a95 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc index 523298c1933..dc7d3e18c75 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr002.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc index f2aef47b1cc..3e1b328dc4a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc index 2dc051625b4..299f4036451 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr002.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc index cb093bd2b11..32db254bb89 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc index c861b48b852..0d5dcd1a212 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr003.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc index 5a48e472c92..c2c2995c275 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc index fe05d81cfa5..674796ca118 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr003.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc index 58a6b8dfac0..931904c5941 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr004.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc index 50bfe8a43e3..09d9775cee5 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr004.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc index 47c4cbdffa1..251fb6bc706 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc index f4e082d7f01..9e26c25d861 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr005.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc index 3b26da09aab..d02984fd51b 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr005.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc index 1f43591db06..c52951b9b76 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr005.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc index 8b05e653927..73aac46d69c 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr006.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc index 799a29472af..57d7bbc82d5 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr006.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc index fdd2cbc778d..4379fe8ed55 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr006.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc index 117965e3867..b91bf010c52 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr007.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc index 856aa61d7eb..e0d6e23b5ec 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr007.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc index 10d0ac312ef..fefa7c53697 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr007.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc index 901f341295e..5a8fefe8ad0 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr008.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc index 6c18c82cf34..93bcf7108c1 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr008.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc index af0b6fdca08..2bce42ab259 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr008.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc index 3bb7f035e2b..8b73ab01e10 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr008.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc index c6c74090faf..5730d857f87 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc index bd546d3cafe..92c72e4162f 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr009.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc index 790916cb424..ea771c87e80 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr009.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc index 564c47c9c8b..98ddac08951 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr009.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc index 6131620d481..530450f1590 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr010.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc index 4a2e31971c1..0b4773835e9 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr010.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc index a31f3e6231a..61b435bcba4 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr010.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc index 4d5a25201b6..25baa306de2 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr011.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc index af29136feff..5d7434a4291 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr011.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc index 63a7f405a98..80ddf7b8838 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr011.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc index 6393978b009..db01d114016 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr011.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc index 01422f1f53a..66c0819099a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr012.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc index 42d71746747..bf51ad16890 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr012.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc index 123e8a10df9..a00e5337c07 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr012.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc index f95d04d3e43..49d7d13ca53 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr012.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc index d4ad76e3d91..fe7c1ab0714 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr013.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc index 9219eaa9591..04db3c4975c 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr013.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc index 7127e94cadf..7db3e3c9544 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr013.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc index 9e0026fce42..8876d46525a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr013_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr013.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc index 0324733d8e2..a01b8096781 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr014.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc index 33af8472675..622d51b88ec 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr014.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc index 6d1f6d4487b..4d9fd23359a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr014.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc index 6535cd91483..a4ebb344d98 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr014_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr014.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc index b46b10fd7cb..a2cd66eb7f3 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr015.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc index 3e75d69526a..3e38feb5783 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr015.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc index cd23b616a69..40a65295f20 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr015.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc index 3817fceab43..8afd3c542e9 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr015.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc index 45f1bf42613..8638e9b18ba 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr016.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc index cdb8088e3c5..a9cb483ae39 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr016_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr016.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc index a065cbf1ecf..3aa66f11324 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr017.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc index 147780512c0..3319f863397 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr017.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc index 421fc05ac73..610d4d9de52 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr017_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr017.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc index 49ef3ebc945..cede33685f6 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr018.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc index ebfaa611d8a..4133f091b08 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr018.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc index 8765a41b6f4..806a9e73cb1 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr018.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc index d84dbf96e47..8e6e4e050f1 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr018_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr018.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc index ba9fca11998..03f9515d29c 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr019.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc index a4624a2cd89..4e59267f42d 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr019_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr019.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc index 7393eac912c..a73f7f4445e 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr020.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc index 782fd955722..f5e68a9aeb8 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr020.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc index e8b26546b74..c511fb62da2 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr020.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc index cdfa20e31ff..d562f4cd04a 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr020_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr020.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc index 9b5f50b9eb5..011681a3056 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr021.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc index fc4a03d4a87..447b1089b93 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr021.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc index 4d489f8200c..b4bbc174485 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr021.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc index 9c59d541c4b..6e968b6bb3d 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwdwr021_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwdwr021.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc index c3616aa5c25..a587918138b 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc index 04ec55942f7..05866c624b9 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc index 0ea5da3ad8e..d016e3018ea 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc index ab2ddde05fe..67b8022e626 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc index b3564fb65df..57aebe336db 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc index e044865b15c..62d5ccb8d34 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc index d671e080ac6..fcb8c4168ac 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr002.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc index c0c69302286..a5f4ede47c2 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc index 1b88d96e606..ad77832e689 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr002.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc index bf3e6759b92..7ed608394f1 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc index 0228cc379d4..a30b7e1e36f 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr003.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc index 5d51062916f..d4687b34681 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc index 1e17d8746ae..493e596ce45 100644 --- a/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_lwswr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk lwswr003.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc index ec95e809e62..1dac8ef6eeb 100644 --- a/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_mix000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc index 1a9743efc4e..b04a9dc6843 100644 --- a/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_mix000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc index 39bbd65d6e0..8bf6217d80c 100644 --- a/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_mix000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc index dac331d5f80..8e6c7b17adc 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/test.desc index 8e184f4fb63..0023dd79695 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrr000.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/test.desc index e8d06e226d5..1079d8d16a7 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrr000.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc index 00ac6caf521..ddd25050ddb 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc index 770dfa0c1d0..cf373c00838 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/test.desc index 301d98e9da4..573578ebf79 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrr000.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/test.desc index bcf6966957a..3c5387c31ba 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrr000.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc index 4fe1916321c..df2f0b6f116 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc index 8a13c06f2b0..f5112560405 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc index 6e4831f900b..9093aed1372 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc index 02021819d4c..8d642e020f2 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc index 9f9eb52aff9..55cc4076498 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/test.desc index 6d21a2342d2..03a1cb2a945 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrr002.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/test.desc index b8e4d736892..6722b5f92e1 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrr002.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc index b6341e5f8e5..09517bac7a8 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc index 77e027f8ff7..03170b7a207 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/test.desc index bd8f174074f..e358a1948a3 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrr002.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/test.desc index b95ada46c2d..c13deca6c56 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrr002.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc index bad9bc22afd..d8fe0b9ea73 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc index f8ec4a8bb50..f75acb82c88 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc index e6e132c9821..0f072b99006 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc index 39353ac85d7..7ba08b37ad3 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc index 91ab042c1a0..5aa0085b6cb 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrr003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc index f182f0f02ef..139405660eb 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrw000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/test.desc index 6fe61cb1dc2..778034e86cc 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrw000.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/test.desc index c0bb0a0a704..bb9724061d1 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrw000.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc index 5419daa4b1c..b07f2dbc4b4 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrw000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc index ec5c8b715ea..c65e3a8a4a1 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrw000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/test.desc index 1efbec64211..60b48c01d69 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrw000.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/test.desc index e69ab6702c3..e99a68521bf 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrw000.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc index 56ef2726389..8c97a212ffb 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrw000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc index e12f8343a3e..117de09256e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrw001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc index 0c9ae24c47d..1506cda0fb8 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrw001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc index 36bec6f4e06..5cad2d108cd 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrw001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrw001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc index b4a026fc31e..7d9e2950529 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc index b54d8b44095..f1d7066a37f 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc index d337d769304..6a9d8366d53 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc index e485fdaf1a3..2707cc6df1e 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc index b0e385e6637..b1bcc8fc691 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc index 34c3c20e077..288ce2c65c7 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc index 1c26f5803ee..291eaec6e69 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc index 3351a46f125..e36a1338f9d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc index 12bd8657158..be39e5a4330 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc index 158f1f7740e..7fbafe01993 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc index c71d66aabec..2c8e69a9b23 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc index 8e9c18e06d9..fd03754f2cb 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc index c331954d200..aa09247aa8f 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc index a1b25aa7e28..f27fd782341 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr004.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc index 4412f80ac52..8ad7dd124a2 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc index f00fe6e71e9..37d9e3d6d53 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr004.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc index ebb54b3da46..f36b8620bc9 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc index af2577668d9..1c89efcb79c 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc index b8f4e8dcc21..2e97822188a 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc index 130adee2d84..9ca823af3dd 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr005.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc index f61ecf26383..a02df40b368 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc index 4e1de010ed8..70914217ad2 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc index f31b0a4911a..ed232b6f08f 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr006.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc index 902b077723a..ea693387129 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc index c74b0e48042..a7e6416c38a 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc index 7295281871a..04e39525825 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr007.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc index c3832e875fc..4b198af74f3 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc index 53a3de926fc..4f45b72e1a8 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr008.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc index 4e25e6aad42..0ae1cbc5d75 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr008.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc index aa0895f8a9d..e91cdef632d 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr008.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc index a4499d816ed..139606d06d8 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/test.desc index f7418c9a453..fae2a95c3da 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrwposwr009.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/test.desc index 74d484d36b9..a0908fd7944 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrwposwr009.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc index fc91b166573..e66629cfd26 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr009.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc index 9dec913cf0d..c6bad36671a 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr009.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/test.desc index 422f3d0dac9..f17ae361cb9 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrwposwr009.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/test.desc index 30ab3c88ecd..5fba1198875 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrwposwr009.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc index 837866a132a..2caec36c208 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr009.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc index 34841a46dac..12b4728593b 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr010.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc index 34ec3eae79f..78d9f2c6035 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr010.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc index e9d80458f35..d4f2a43d4f0 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr010.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc index 1ecfab58f1f..fdf73433190 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr011.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc index adae0483b3e..c70acac8f9a 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr011.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc index 317f850f9ce..afe55c41864 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr011.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/test.desc index 3dbebca26e4..7ccfd8666c3 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrwposwr012.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/test.desc index e5640ede1ac..1a6a8de71be 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrwposwr012.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc index e2325895ae1..e18c0f81e43 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr012.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc index ed917252a27..505bdf829fb 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr012.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/test.desc index 2fdaddc614f..8285d0a40ff 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrwposwr012.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/test.desc index b06bf4b3749..46769c42016 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podrwposwr012.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc index d18d2a90b71..3fb1ba50541 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr012.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc index ab4d9c0f4d0..2505174e378 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr013.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc index 2d7815beee3..db436738bfc 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr013.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc index 46e8f62ae00..9052de41eb1 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr013_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr013.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc index 3488ae2986d..b3def2b625f 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr014.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc index bb3a5df823d..9fe51dcb5c4 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr014.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc index 265b0ae759e..91e7f80fa0c 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr014_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr014.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc index a79289abfca..07f8c3e8550 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr015.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc index 865380c70dd..cb467435e2f 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr015.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc index e48f4354022..a61a9b99e73 100644 --- a/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podrwposwr015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podrwposwr015.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc index 4df41b0d8ed..cc87e5a74bd 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc index 66763aa3e90..f503ceb5af2 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc index 035737ef01f..fb1ea8b980c 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc index 2e3191e6152..6c7700a1475 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc index 31bee5edb55..d80fba0078b 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc index 46466001aa1..a2bdbaafbe3 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc index c1bd41aedd6..0749acb53fe 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc index d2ca0cf6741..5eeefd5d0b6 100644 --- a/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podwr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc index 85093d39154..217e4c6e550 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podww000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc index 44ae03a40e7..56c75068aef 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podww000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc index 4214449d1c8..40c44d46191 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podww000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/test.desc index 24b9ed85c73..42309d3e980 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podww000.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/test.desc index 191755dbdb4..4cf010970c6 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podww000.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc index a00eba8de11..7f58ec89a9a 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podww000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc index a3c755bf5c8..5f1eee18c1a 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podww001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc index d1e7017925b..da04bb61aca 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podww001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc index 89204498778..50cf9ede087 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podww001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/test.desc index 4f2aa2b1e57..4a901286346 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podww001.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/test.desc index ac71b71680b..a620a6ae756 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE podww001.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc index 57e64eb9e0c..81c3b5f7458 100644 --- a/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_podww001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podww001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc index be1e43f0e19..2e0c0d34b36 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc index d69d86977dc..a95fa6c03cb 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc index 971070ad957..309538d3689 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc index 2271dca0174..c47d06e1559 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc index c7976a83ae4..b80ba6cda6c 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc index bfec5d2e24b..b8421f3767b 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc index 4ff5ee2d396..6b40e0db172 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc index 1e4524f699c..d4989a18aa6 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc index 07be90cb660..a88795f3d50 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc index aba83d254ce..b19cf6b785c 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc index 647ba0f1e7f..435ed09abb9 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc index 5aaf8a79a22..e70e89a53e1 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc index d876359835d..1fb8f2d255d 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc index 50735a02ec4..668ca3690cf 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr004.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc index 0293b4bdc5c..efa5c58170d 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc index b7fa89cb7f3..303c1c9ab00 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr004.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc index 5758a24c854..13bdf4f815f 100644 --- a/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_posrr004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk posrr004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc index 102c3b7d4a6..275b95d17cf 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe000.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc index 973f23666ba..136da5a4db6 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc index 457ca37f62d..c74adba2343 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc index 48b50a5db59..823e5c66ed9 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc index 2adcbb66a22..8420119f151 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe001.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc index 6c1fef043cc..8f9ac9a8836 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc index e60e60c515e..32e0942dcb5 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc index 931384cb2b9..064efa7c32f 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc index e14cf48be74..3e883b0853b 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc index ba2269fba13..5e0ea135db0 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc index 822d405601d..a1a08fbb261 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc index af92120c7ee..5c287f876e1 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc index 92db5a56ee6..8c3deb4ed9c 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc index 0dd72743f36..266231b6fe2 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc index 8b29c670c6e..a73da45388d 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe003.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc index 59bb18d9748..4c73237d343 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc index c51c8e3255c..bf5f923b22d 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe004.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc index 02a4aa970a5..3018f41d553 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc index df4f84aa9c3..d65c8b13c5b 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe004.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc index 09abff7f8f3..67797eec9b7 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc index 33eb85a40e6..bffb5f8c29b 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc index a3f0ada2541..128a9da0f2b 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc index acd45557871..cd8ec1241df 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe005.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc index dc43f9b31cb..6c99dd1a118 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc index 2ab52d59eb6..2a0eed300e3 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe006.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/test.desc index 8277a77f3b3..af974e7f57c 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE rfe006.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/test.desc index c24611f12f0..7125541b0b1 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE rfe006.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc index e0d61ed8d31..4697b491d45 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc index 98443cd6b04..91318bae9c1 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe006.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/test.desc index 4b0426a1c96..af6e571dea2 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE rfe006.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/test.desc index b3ce1432728..3974c72d0ba 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE rfe006.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc index cea6257a845..df46f279240 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfe006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfe006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc index 446e8af9955..31d487e034c 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc index 3740b76c451..bff79517654 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc index c3ce6eed5fd..0c009d7a955 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc index 507962bb724..d6ebeddea9e 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc index 346976839cb..18d8c500a6a 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc index 837278af8e1..ec73710576a 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc index 401de42e4fd..da6de5b2a7b 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc index fa0c44cec0e..e5e26f9c63b 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc index 5d0d3f1ebac..5f2a6f439f8 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc index 0f79605d893..247c6c62d19 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi002.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc index 28b737a325e..d7b868608ed 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc index 55b0ccaf9da..7211e374905 100644 --- a/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_rfi002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc index 68ce1dca9aa..11549c7ee2c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc index 2d08a19bfc6..35fb08de84c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc index a7abcb9cef1..5100ea476ec 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc index 968944a3d12..53fe4b723b6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc index abbf9965264..35b3fee309a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc index 84953281aad..a1bba8a2ac9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc index caedfcdde82..eab68f03958 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe002.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/test.desc index 27b7a75d728..86ef382c27a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe002.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/test.desc index f39f45aad54..50bfa53c5ac 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe002.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc index 60fc34c4c66..3fc70880e79 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc index b05a5689114..1bfa226ce1c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/test.desc index 3995a8be134..052dacecb3f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe002.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/test.desc index 7903502fad4..925e2dc2d4a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe002.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc index 1875fe78857..29e63a335b8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc index e88cd29ccfb..f5396c46b9f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe003.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/test.desc index 2f10ce97f74..d575cc1ebd7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe003.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/test.desc index 8a1a429cc45..06e306706e8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe003.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc index 1075091e4ef..0e88710709f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc index 5527248cd31..4d2fb8f4aa5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe003.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/test.desc index c2852aa117f..33ed24e5751 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe003.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/test.desc index 6035587c3e7..0ee79cca735 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe003.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc index d66e5d92de0..7f0378eaca4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc index 3bbbfc4b7e7..dba81306064 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe004.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/test.desc index e68c54db660..87122b44390 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe004.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/test.desc index 3efb869cd65..cbc369d4276 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe004.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc index 5569c08ebc3..6a2e45dcad1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc index 7a24ce89ee8..8399f1eb10c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe004.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/test.desc index 18264c60b31..03f0dc9b3b5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe004.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/test.desc index 1cee8628380..63eca5e000c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe004.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc index 777e21c9da3..57b1732d750 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc index 5547352dfbf..7b4bc77c888 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe005.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc index 027fa07e5f7..ddab7cb116c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc index 05c7f5941ba..31ee9699763 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe005.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc index 2574999bd00..e82ea5b9069 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc index 66cbd086d87..9a089da988a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe006.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc index 0e3dda55ab2..5f5e9dd5526 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc index 09250d20b3d..1028099e66f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe006.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc index d9a3f80d2fc..f7fc449e498 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/test.desc index a6078978a3e..8ceb936fc2f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe007.c POWER ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/test.desc index 987df97d72f..4fe68960ba3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe007.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc index 202a7888a77..9dbdd9a2d24 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe007.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/test.desc index 936757099ef..7a92b3da154 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe007.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/test.desc index 8f6972156cd..b2f5b66f4e9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe007.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc index 6a74e7491ca..a1a9eabd4c6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/test.desc index 3c02721ea2b..08d7f1bab5b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe007.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/test.desc index e5efc23f13b..a6faadafdb5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe007.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc index 89a79909424..59c37b5cb0d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe007.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/test.desc index 74bdb95c852..1f1dcda6df5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe007.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/test.desc index bea1320947b..c3d3ff54585 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe007.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc index 7aaca2e899f..ca2ef67fd1e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/test.desc index c8cfe565afd..a0c6d8d6692 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe008.c POWER ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/test.desc index 7069ec2b89c..1182a73fe14 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe008.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc index 8f26673b330..326ca4a4bb7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe008.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/test.desc index bcac9e37f33..1ce5f34dcd1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe008.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/test.desc index 924bcb796fa..4769c8a6371 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe008.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc index 553d3c45c62..296bfd62409 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe008.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/test.desc index 06782ae47c1..78e27467e79 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe008.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/test.desc index f6f37f07653..73eaff84ed1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe008.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc index 0369509369b..c2cdd5cf98b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe008.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/test.desc index beabc236e9b..112c7cb6695 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe008.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/test.desc index 11b8bc5c64c..9847607774e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe008.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc index a53a1342f30..05b97e56552 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe008.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc index d901b2dd1d6..e543f95269e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe009.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/test.desc index 6ad04f65020..58394c670f1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe009.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/test.desc index d02a3eea5df..ba5cd3e7f29 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe009.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc index a3356e9b580..2edf34f9757 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe009.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/test.desc index a6d9281c544..8328eb0d169 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe009.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/test.desc index 7e3a615854c..ac1a5ec3b10 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe009.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc index 8817f3da470..148402a040f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe009.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/test.desc index 9e9f4538aac..2dc8d0ec37f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe009.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/test.desc index 259d8f88466..8eb035e04e6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe009.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc index aa84f946d70..20f4c2522fb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe009.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc index a81eaf2b91c..6d14a354809 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe010_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe010.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc index a11223c854a..246db7bef43 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe010.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc index cd7db6ab0b9..018c3ce854e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe010.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc index 8597672d257..e39de8246c7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe010.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc index 0149b47a053..ccb2463e04c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe011_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe011.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc index 673765f734c..9fa38a5c24e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe011.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc index da87de4be0c..64d76ce361a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe011.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc index 52a9f083352..f97a17cdb1e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe011.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc index eec1a7516e6..239410121cf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe012.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/test.desc index dc35f5efcef..cbf23f25f5a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe012.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/test.desc index 94ad97d5fd4..da16d3784c7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe012.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc index d66ac14ff70..a44394ff0fd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe012.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/test.desc index ecbf01d46d9..bea3b90178d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe012.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/test.desc index 62b5efa5cd6..4783d940755 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe012.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc index 6a5954ea472..38d845e8a66 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe012.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/test.desc index e39d0976aa2..b57cad10cc3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe012.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/test.desc index 66bd7fa923b..3c840adee2c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe012.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc index e3af18b3e32..ad85c5758f8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe012.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc index 10a7826a6a4..f57bee4c765 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe013.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/test.desc index 235067461c3..4485cd5c8c8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe013.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/test.desc index 4b6b5ac03d3..5b9ad6f3d81 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe013.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc index 0c14440b4f0..4bb1b413c75 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe013.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/test.desc index 94ab7343300..2813f89dc25 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe013.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/test.desc index 110830dae97..4a37be8700c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe013.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc index 9ab48e0e88c..fb3375623cb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe013.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/test.desc index 2d42d0de892..335ee6e841a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe013.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/test.desc index f108af163bc..9faee213dec 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe013.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc index 9e353b096d1..e056d35390d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe013_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe013.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc index e668a6234f9..f419653ba9f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe014_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe014.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc index 2828b41e5a0..bef1655ad77 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe014.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc index 0efb15a404d..1f522db62c9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe014.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc index 4e17a710d23..109d05ff8b3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe014_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe014.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc index 1f685787876..a0feabb7f93 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe015_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe015.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc index 878b1e3c113..ec87d279723 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe015.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc index 233942844cd..9e61d81dcb2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe015.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc index 2ec65817513..ed347c96452 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe015.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc index a4c73cb5766..f77e16e8f1d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe016_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe016.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc index 5ed02cde4f2..b872cd11f0e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe016_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe016.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc index 5e8e2817db9..05a7e30ef91 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe016_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe016.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc index 5e9b5010b51..9212712263d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe016_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe016.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc index 1c12813ca1f..c1362e1d267 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe017_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe017.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc index 6adde33e3a9..1013ed740c2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe017_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe017.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc index 4193e5fc02a..8efc382663f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe017_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe017.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc index ffbc5668de7..a799b931706 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe017_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe017.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc index 2781fdefde8..f05654d78ab 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe018_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe018.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc index cba79051b81..4018506f6c5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe018_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe018.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc index 8720f837bd3..2d4f167a5a5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe018_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe018.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc index 13acca85c12..ddb7a07a111 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe018_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe018.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/test.desc index 3b562e01800..0d333ae62bc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe019.c POWER ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/test.desc index e1e346821cf..cfc6201ff45 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe019.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc index 0592f036616..418b21bab21 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe019.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/test.desc index 1749c3fef07..89da34eb528 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe019.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/test.desc index b479af95f22..31b106b3616 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe019.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc index a6dec2ce8ef..368a9055463 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe019.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/test.desc index 75d7233c744..1a9c382a847 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe019.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/test.desc index 32e318a3235..aa9c1da62ba 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe019.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc index f6f6a75b358..5c6362e9023 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe019.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/test.desc index 71766201bbf..53f70e2fe1e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe019.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/test.desc index 43f628b95fb..daf1ac4da9b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe019.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc index 0aa65915d87..7e1629b7555 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe019_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe019.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/test.desc index be438ba8ca6..0a5fa81f2c3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c POWER ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/test.desc index c21a474da9a..f3004984714 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc index b2a312d7a10..62a43f6eaa9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe020.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/test.desc index f951cf9d904..ee530461f56 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/test.desc index 51801998550..6b747a3cabd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc index 238298a0c11..49ac620403a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe020.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/test.desc index 50d6fe781b0..7d6f562d8ba 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/test.desc index 3ebc471f29b..503c915b2d7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc index dfe39a6c716..c3970f743a9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe020.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/test.desc index 91d6de0a43c..6a2c65ec248 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/test.desc index f20b431d91e..1f871736e97 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc index 695fe195823..ea924cb2e6f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe020_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe020.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc index 7b3d9fdd5ee..32c7748d914 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe021.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/test.desc index 7e4c4e7d828..6e87f5b2e8e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe021.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/test.desc index c21bf2877b5..f7d41669caa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe021.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc index 3032c8552a3..b411271632b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe021.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/test.desc index 39cfed99810..655d7fcc801 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe021.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/test.desc index 9c5a499d649..d176d0d5d26 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe021.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc index 5f0be896879..2f80fd23eb4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe021.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/test.desc index 893b31c148d..3c92a4c5c76 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe021.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/test.desc index 8f5c7084236..7641127da4e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe021.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc index 99fd7723446..56cc9d26a9d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe021_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe021.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc index 8b9a93679b4..1372bed9370 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe022_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe022.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc index 2ce159e83d7..d357da83515 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe022_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe022.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc index d21743cf1a2..a7bdaa76f98 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe022_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe022.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc index f2103003983..0d657dae25f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe022_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe022.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc index 35f4fcb4102..a3719db8353 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe023_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe023.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc index 5b4b4e5838e..4dc2ca7cc35 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe023_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe023.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc index f11b59e297a..92aa8082620 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe023_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe023.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc index 862265668e2..124f24585ba 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe023_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe023.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc index 2926e0d6abf..4911404cda9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe024_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe024.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc index 830ded5b101..4b7d038ffca 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe024_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe024.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc index b80037db597..2f79a7cce0a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe024_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe024.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc index 39ac8bbc0da..54120806b93 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe024_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe024.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc index 59f40825e35..ab3ee9acfa5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe025_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe025.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc index 807a34dbd70..d59bef036f1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe025_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe025.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc index 92212999944..9d1f238b31a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe025_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe025.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc index e6eed222c22..b0debbd1050 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe025_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe025.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc index e3fce649c54..1d32fe133c2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe026_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe026.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc index aed6b444360..5e41bcc8cad 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe026_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe026.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc index 232e40464d7..3dc86a8f992 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe026_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe026.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc index d4beb230f0b..1c7da6913b4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe026_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe026.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc index a359d356eb9..097b2f4bf76 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe027.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc index a2735820092..a9284f089cf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe027.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc index c28ae559ab8..7f31326ab90 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe027.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/test.desc index eb0e643b02d..b4b54b2703c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe027.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/test.desc index dfa5912dded..817086efe39 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe027.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc index 438aa4a7b2e..1187b029390 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe027_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe027.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc index 1a23b29b121..17585802c3e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe028_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe028.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc index 028c3eb6f4d..be1740821f6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe028_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe028.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/test.desc index 340ca3e6a0d..9cf87a3bcfa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe028.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/test.desc index 7a9e337a362..4f2787ce1d4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe028.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc index 14e34d68644..c42c0ed8f56 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe028_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe028.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc index 7acc895641a..8b88cacc76e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe029_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe029.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc index 08f981d8746..10f4cad462d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe029_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe029.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc index 2c776835615..234d592017d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe029_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe029.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc index 34c9594e332..eb5e8c8f80f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe029_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe029.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc index a355589f5cb..f904c61bcba 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe030_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe030.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc index 046aab63d56..c77c760b407 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe030_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe030.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc index 291cfd19337..b5fab5e61c6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe030_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe030.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc index eb3169afe73..27c268eb230 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe030_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe030.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc index a4134a8806d..0a29593ee73 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe031_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe031.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc index 050396f6a65..3b81c08fe2f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe031_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe031.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc index f6794ef12ca..1b410458f38 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe031_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe031.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc index a5ca148946c..4440318cb3f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe031_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe031.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc index 6b34e4e763b..bf25ab1f763 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe032_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe032.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc index 24878f0151c..53d3fbb8f27 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe032_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe032.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc index 5d980322a40..ba4bb7fa13d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe032_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe032.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc index 432bb612d56..597de7ea345 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe032_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe032.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/test.desc index 90fbd99d312..8052ab8c2da 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe033.c POWER ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/test.desc index 12fe792acc8..9bf458756d6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe033.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc index eb1f5112539..3c256cbdac2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe033.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/test.desc index 6370549b29a..cc6b86ace0a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe033.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/test.desc index 9f6d4961e4f..f58f62d8d9a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe033.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc index 156fe6fc28f..99cabaa3e54 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe033.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/test.desc index e28fcf76a46..5f5443f5624 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe033.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/test.desc index 6b438b2adc1..4d50d1b708b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe033.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc index 8399defc34a..063a8531584 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe033.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/test.desc index 9528e38951f..56ca9744221 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe033.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/test.desc index 9c953e3d3fd..7b8bfdf09e5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe033.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc index 6e9084ca047..98cfcc228be 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe033_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe033.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc index b6354263b3e..48617bdeb13 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe034.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/test.desc index ecefd4b0bc8..1438bbb8bb3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe034.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/test.desc index b3cef114f79..e0e2fbcbb20 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe034.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc index e7c7db19c92..444049cb8c3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe034.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/test.desc index 68547ce4b5c..a59cd9fb4db 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe034.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/test.desc index 55274f8b885..b6acc856c96 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe034.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc index b7822054ccd..0288bd73b30 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe034.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/test.desc index ceb84d690b0..71f7630b816 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe034.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/test.desc index be63e7406e3..c06c3172863 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe034.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc index f42dbf08322..82659f77b61 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe034_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe034.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc index 552b94e63af..b02aeee50f9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe035_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe035.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc index 7cc36f04611..8d71a481b29 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe035_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe035.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc index d2d503f3d6f..811a5149ada 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe035_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe035.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc index e3271875608..864bde5c4f5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe035_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe035.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc index 04c074f7692..53a1d169351 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe036_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe036.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc index 77c3e613978..926e2537ee8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe036_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe036.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc index ea65c6e9786..889e120c442 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe036_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe036.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc index 063d0ca2a50..118ce44c4e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe036_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe036.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc index 8ed56e50dd8..6cf032c02b8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe037.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/test.desc index efb88530eb0..cd0c97650bf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe037.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/test.desc index 56e32508412..45dcd741fcf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe037.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc index 4e426c94c69..504686d97f8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe037.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/test.desc index b1762f14c02..b06cd8fb8af 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe037.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/test.desc index 5db314f5951..c859858eb68 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe037.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc index 3d9d0784382..8c3f51ba045 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe037.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/test.desc index 670f49923cc..76230871eaa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe037.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/test.desc index d95eb897d2e..6979ab976c5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe037.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc index aaed680a10f..7e77be47de3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe037_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe037.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc index ce8581f6bf3..f444d546f0b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe038.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/test.desc index 7a33e905e8a..83625d00f3a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe038.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/test.desc index 4c15acfd851..9f716eeb5c7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe038.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc index 2ee7d4db78a..ff9274dabd2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe038.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/test.desc index 9c86af97b34..2d35abb318c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe038.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/test.desc index 64973b1012c..ccb12b256ef 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe038.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc index fa71497682f..dcc5481d857 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe038.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/test.desc index c855d66fff8..b8bd2def5de 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe038.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/test.desc index 11a40e95310..9ab5870c307 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe038.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc index 8520dd44b92..cb07374b317 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe038_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe038.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc index 3fc3cbb829f..86b966e5284 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe039_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe039.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc index 9cb9d2ee6d7..aa5a2c377b2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe039_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe039.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc index 993012cf295..319e2ee2f99 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe039_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe039.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc index 83608819866..c173873cfc7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe039_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe039.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc index 9f31a1dc73f..5d42c61690a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe040_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe040.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc index b44ff487c05..6f4c72b6543 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe040_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe040.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc index 51011af7492..6db83f8ef89 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe040_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe040.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc index 3d25c72ccc3..e051a19c084 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe040_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe040.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc index 5157627161f..d38efdb0995 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe041_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe041.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc index b57a46b8ef9..4da3000b18d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe041_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe041.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc index c8b28bacfff..b9153a8f154 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe041_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe041.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc index f25ffb91f07..a30160f0714 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe041_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe041.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc index 8d65d899586..6cf71d88d91 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe042_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe042.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc index bf7230db670..98375603e3c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe042_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe042.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc index f50d05ae760..1810859924a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe042_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe042.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc index b6615e48ad4..2e9945474a1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe042_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe042.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc index 48e83839d1d..5ae95202178 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe043.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc index 326e4dc2cb1..998a495e986 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe043.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc index ad39b281370..fda8545dbe0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe043.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/test.desc index d56bd5e8b30..c20ecb7536b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe043.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/test.desc index 592018e4bcf..419900ed1f4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe043.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc index 3becb4f12b8..cbe0c4cda55 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe043_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe043.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc index a3420cae5e5..22bf3781771 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe044.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/test.desc index fd824ec762f..d841c0fac09 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe044.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/test.desc index f189f8d406b..20878d87ddd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe044.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc index 07aa17a9e2c..ec9a968a6a4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe044.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/test.desc index e3207db8ff1..17c4c23e0ca 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe044.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/test.desc index 568c1b4828e..1a75c870454 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe044.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc index a472d0d3551..f4988ef296b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe044.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/test.desc index 4c686d56dca..5a1bea3b035 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe044.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/test.desc index 936c16f2ce7..9aa45ba11d6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe044.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc index 1887a0dc8f0..cfb2518cc7b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe044_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe044.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc index 764ee354633..1269e51e90b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe045.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/test.desc index e0a560b3fc3..4b61f420b14 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe045.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/test.desc index 3d872be6726..64b12cf8bc4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe045.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc index 9578640ae16..406054d2fac 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe045.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/test.desc index 70f7b2032fc..b8044fb67f1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe045.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/test.desc index 4367205d7f4..fade577eeac 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe045.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc index 704bd33281f..d9d63df04c8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe045.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/test.desc index c7e674e01fa..6d8f11d5bb2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe045.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/test.desc index a02cc185119..38394a80d2e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe045.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc index 68ae6016790..50750f5887b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe045_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe045.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc index 21631764323..e196edfcce0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe046_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe046.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc index 3426e75dec0..c5197b482a2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe046_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe046.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc index 82acccb25bc..ca75bb19d78 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe046_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe046.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc index ccfe7658326..11e88d88f13 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe046_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe046.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc index 68aa615dbad..0bab4b09717 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe047_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe047.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc index 04b796e00cd..09c57866907 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe047_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe047.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc index e70bbaa2e74..25771f70fd8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe047_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe047.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc index 0906742b9d6..8fc44b94184 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe047_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe047.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc index 8120e89e2d1..8846a899582 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe048_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe048.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc index a22eba6e736..4ea43433a9c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe048_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe048.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc index e9b6f0e2ee5..f7b7534e064 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe048_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe048.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc index 2fc93c8b9f2..da7d9391243 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe048_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe048.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc index acbd687de18..9db09bf29e3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe049.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc index d4cddcd6011..fc67a9188c7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe049.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc index d3854715396..55d36e01590 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe049.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/test.desc index e058e40bc6f..bf33e97262e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe049.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/test.desc index bc0c4ed2cb7..273f729a8d9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe049.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc index 5bace2a83e1..0ab647d19f2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe049_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe049.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc index d45e3453d60..6e6f447dd94 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe050.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc index cbe363b3921..a52c9914a7f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe050.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc index 0fd04dcddb9..3fd84d3d338 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe050.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/test.desc index 30fa64ccd72..53f11930fb0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe050.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/test.desc index a7e28abc43f..e4dd66d2ed8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe050.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc index 50ee66c1085..5f11985838e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe050_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe050.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc index 25e66e458d1..3cc14a34429 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe051.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc index ce05fc1ee38..3c462152cfd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe051.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc index cef32f61865..1e38af35896 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe051.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/test.desc index a0d7d0f5b8e..e7dd768de37 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe051.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/test.desc index ae172427959..3523ea07635 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe051.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc index fdc4103b284..aef1d184d3f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe051_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe051.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc index db56677664a..234b1c2ca76 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe052_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe052.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc index 8686689a123..441e8826000 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe052_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe052.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/test.desc index ed50ce31cd3..d4d4d567233 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe052.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/test.desc index 2f084e6c688..766d425cc37 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe052.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc index b176b0d0dfe..85e29d2aec5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe052_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe052.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc index b147286915d..04ea41e4a6e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe053_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe053.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc index 6e4c3a01f2f..7f4ee43fcf5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe053_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe053.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc index 744fd9264d1..a230f1a13a2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe053_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe053.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc index ee33cc79034..5ed59b979c3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe053_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe053.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc index b3040faed36..5d1e9431208 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe054.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc index 9e3e627807f..80a0d4d5a8d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe054.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc index 80a728990e9..db8f506a27c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe054.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/test.desc index b5af028d9a8..3bbeee8b947 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe054.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/test.desc index c8319bb1e98..dae915d49c3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe054.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc index 0a24ee90747..284083a8ee0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe054_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe054.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc index fb0b46f4f41..a277390e2eb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe055_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe055.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc index 8a9249f5228..b5dfb078dc4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe055_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe055.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc index 866cf34e8d9..57f93808be9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe055_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe055.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc index 09ba27b29ec..f087b9f804f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe056_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe056.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc index 402c17f5304..71bb4fc5e53 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe056_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe056.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc index 46c25980657..3024fe113d2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe056_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe056.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc index 3cfb3c30b56..2bdf6ec5aa4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe057.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/test.desc index 8b78bb29674..8358c490a04 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe057.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/test.desc index dcc8547b803..f823c4c641d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe057.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc index fcb05ead47a..5f10e4fd6a7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe057.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/test.desc index 26080aee431..2ccbc45e0d3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe057.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/test.desc index 007d244d32a..b1ff0daf964 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe057.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc index aab9434bc27..9c00de52c62 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe057.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/test.desc index 3510305d71e..73ac6b34557 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe057.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/test.desc index ac8850c0b43..2d4f598b9eb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe057.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc index 6c889b2be16..099e3adb91c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe057_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe057.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc index 2ae07590656..5ba9353eeba 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe058_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe058.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc index 8b865142df1..4b8a93f6ec1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe058_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe058.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc index 2e688c659f7..b9b3b95289e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe058_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe058.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc index c92929f7a33..656292d37e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe058_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe058.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc index 688c31c177a..95874e790db 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe059_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe059.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc index 4043db022d8..f0fc0da13c0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe059_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe059.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc index 16e98c47110..ac9fdc1dd89 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe059_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe059.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc index 1d0f90f5bff..1cc9d1dd0bf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe059_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe059.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc index ce3cc297993..da6aa484303 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe060_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe060.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc index f37087e5022..bce006350c6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe060_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe060.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc index f4447cf8127..df593251aa0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe060_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe060.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc index c4492a944df..5cc8f74ab51 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe060_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe060.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/test.desc index 6ba04b1f599..c2caef19897 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe061.c POWER ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/test.desc index 2121d03ae5b..861797b9f31 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe061.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc index 1236ee71028..8a3a4b8790b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe061.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/test.desc index 75fc051269c..fc82ae49295 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe061.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/test.desc index 289cd99f6a6..b796e322cf9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe061.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc index 8039c05595e..9382d42f5f2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe061.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/test.desc index a8c98b17218..19fb587b00f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe061.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/test.desc index a8c014e87ea..b381227ed12 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe061.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc index d11fe60aabf..798820abc08 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe061.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/test.desc index 1773690891e..fefbce46d80 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe061.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/test.desc index 11a4cd9f1ac..d76f518930c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe061.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc index a5a5c175142..8719a985bff 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe061_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe061.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc index 5d90582ddf0..3e5d1ddce24 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe062_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe062.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc index 770012a38d3..8138c29552d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe062_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe062.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc index bd8a3469407..b47b71d7b8c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe062_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe062.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc index 98e24aeae5a..714938bfbd0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe062_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe062.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc index 523c5eb9eef..f8ecd6e95f7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe063_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe063.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc index c9fada2ce95..8c72d821cc9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe063_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe063.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc index da6dd0903ff..a975917a6fe 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe063_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe063.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc index 4f2b67509c7..5523ae09a1e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe063_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe063.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc index 41254a0f4ec..0cadfe5db2c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe064_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe064.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc index aae9f9cb336..3e4b30acce5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe064_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe064.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc index 111a8ff070c..0e124e1ea17 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe064_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe064.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc index 30ab9ceb5d3..0b80746489c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe064_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe064.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/test.desc index 2b2ec430f8f..fb5754869ba 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe065.c POWER ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/test.desc index f0cbdcd697d..5da4601f01b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe065.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc index 256c7b2048f..69976eb7b80 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe065.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/test.desc index 4298d462620..75bf162b153 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe065.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/test.desc index 6310691e48a..fe90f6925a8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe065.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc index 144c6e2c928..303d0d01217 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe065.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/test.desc index 2280f4d3032..5dfc2e00091 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe065.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/test.desc index 970ce3bc5be..fc82505d301 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe065.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc index d349ba16882..1a9ef53a73e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe065.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/test.desc index 222fb549e76..ebba8171d98 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe065.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/test.desc index 94ccf0bca30..32436c51bc5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe065.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc index e4e8c738438..910c5c51560 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe065_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe065.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc index 3d1aac89f99..f9dc1df1d7d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe066_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe066.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc index 6ff7c3d1df0..22338feaab5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe066_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe066.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc index 51fdacc8561..c596535ec2c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe066_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe066.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc index ebf1184323b..998205d07e0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe066_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe066.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc index cc815680319..52aee5e69d7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe067_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe067.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc index 0c79925ab76..149d57c72a3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe067_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe067.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc index 2eed07b44e7..95b4526e740 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe067_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe067.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc index aa8fb078382..317f4457ded 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe067_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe067.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc index f4be3392d71..7400be5a813 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe068_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe068.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc index 1ecc016b1c8..3b48db7e2fc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe068_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe068.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc index 710fe57ee89..f2478bbce31 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe068_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe068.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc index 82f6bd68718..ca1b4177bf0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe069_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe069.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc index 57f19c3addd..b0853658441 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe069_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe069.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc index 5af01df99fb..37772c79f2a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe069_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe069.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc index 7a811f2369d..81e8dece6aa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe069_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe069.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc index 08cc5ba9f68..a334b207546 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe070_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe070.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc index 66bab3c772e..fa5372150df 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe070_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe070.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc index d489eb1b50e..6ce9263fc2b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe070_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe070.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc index 43548df4b07..8c76d20426d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe071_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe071.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc index 5d1e1912c9f..a7cd48f8f95 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe071_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe071.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc index 592144ba965..6db3b5d5474 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe071_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe071.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc index 9d4d39aa68a..cfd0537462f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe071_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe071.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc index 332e3246a76..edfe81fdb09 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe072_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe072.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc index 39755e84af7..0a49aaf8fee 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe072_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe072.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc index 764b9e1fa14..0739872718f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe072_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe072.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc index a98156a3437..b71c232f03f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe072_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe072.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc index 63c7155f635..5cee5dbf6bf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe073_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe073.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc index 9f33093665d..d53507f016b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe073_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe073.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc index c3632e5ede9..7356f21d21c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe073_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe073.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc index e4c8e85df9b..722171a0e46 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe074_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe074.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc index f20cba3fd1f..bab79485e50 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe074_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe074.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc index 50eb34c117c..1de7d2c14fc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe074_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe074.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc index ce4cac77346..d586e229bf3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe075.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/test.desc index 0cebcd564d7..030730a745c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe075.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/test.desc index e507a69fd9a..56c0125508b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe075.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc index 6b669d81169..8ab73c8f6a0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe075.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc index 6b06cf58ad1..a76f17eaf84 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe075.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/test.desc index 862bbe0f593..cb9bdc058a6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe075.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/test.desc index ac32db3d56b..29e6606b2cc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe075.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc index 20dee034a69..3a0921e447a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe075_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe075.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc index f0adccac979..d3b7059f9cc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe076_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe076.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc index 608453fd289..9b1cb06064f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe076_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe076.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc index 6c786b60d92..cdc676cfbae 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe076_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe076.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc index abee4edb924..6cf372aaac3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe076_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe076.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc index cc8959ab22e..685c9fbf8f1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe077_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe077.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc index 5c6c45e5de5..9aa28b03027 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe077_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe077.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc index 43ca3bf0884..b4ff386f864 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe077_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe077.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc index 92b301a4dc7..219bb6a72f1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe078.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/test.desc index dde6444c400..fee973104ea 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe078.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/test.desc index 0895d22c111..12cf7fb4655 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe078.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc index 57d4ccbc548..35eac394043 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe078.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc index e362c01a98d..11d07888c74 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe078.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/test.desc index d84f6ff72e8..b9cbb235491 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe078.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/test.desc index e9952efb7fc..d997ab2e881 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe078.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc index 5e941819e63..9d35a11bec5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe078_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe078.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc index a48dc939b1e..c4869c3f6da 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe079_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe079.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc index ef9a95c75f8..8dae57f60d5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe079_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe079.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc index b80b539004c..fa9647c7d64 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe079_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe079.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc index 2f1d2a70d20..d2a3118ce6e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe079_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe079.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc index 1aefc4522bd..8ec5484ecd9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe080_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe080.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc index 50efd167935..5ca442bd486 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe080_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe080.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc index 14c344c920d..ea4f4ea4400 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe080_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe080.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc index 1364ea9a06e..68a88f6a27d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe080_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe080.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc index b8cb5b4bc3d..c7150f897ba 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe081_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe081.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc index 9f54c6166d5..07a839fd3e2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe081_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe081.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc index 7827a5930ed..520a81e2a72 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe081_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe081.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc index dd2a477965f..f07eb8f6d28 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe081_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe081.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc index a66215bcd13..6036a44b070 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe082_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe082.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc index 93faffc1057..2a5b8a25b28 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe082_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe082.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc index 993355d2ebe..fd82cdf6b26 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe082_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe082.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc index 35713bf3050..ee49d8fc5c8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe082_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe082.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc index d3e7ed34ec9..def672a3a09 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe083_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe083.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc index 1e266d89b59..3f4efd3cf86 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe083_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe083.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc index 5548c7777e7..1b94af0ea9c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe083_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe083.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc index 09a6175d8fe..2f0f67ee14b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe083_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe083.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc index 2221482140c..886986a14ed 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe084_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe084.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc index 2adcb09c5e8..319f06bfe19 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe084_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe084.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc index 1f1832f9040..9efc59b2792 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe084_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe084.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc index 8b5ee0e26f8..458ff4017f7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe084_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe084.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/test.desc index 1e849f249ad..b1c8437a75f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe085.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/test.desc index 3b888641a86..4d7632621b6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe085.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc index 09ca9252ca2..51eb7e36bdd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe085.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/test.desc index 80f970a39e3..1cd75edd1e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe085.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/test.desc index 6aa2f33ab54..4c4982f79b7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe085.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc index 6910f51e84f..cd441ddf3c0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe085.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/test.desc index eef63eba6c3..cc47d3f8281 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe085.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/test.desc index e260b0a0c97..2bd7a74cd06 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe085.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc index d8ac2ee4418..36122672c47 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe085_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe085.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc index b36ab18f966..1e0cdb03f15 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe086_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe086.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc index 371548aafc1..1a781b88f69 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe086_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe086.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc index db44ea447d9..8fe4cd71430 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe086_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe086.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc index 91f9f4d37ec..1167fd2302b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe086_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe086.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc index 92a009ab7fd..15712002f60 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe087_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe087.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc index 64d822ae1f4..4a9fa716eb2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe087_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe087.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc index 9da4cc88f3d..e252344aa17 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe087_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe087.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc index 3a572fbd51d..3faed007c21 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe087_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe087.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/test.desc index bbb7a06bc1f..5dc2189f960 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe088.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/test.desc index 3d0758668cc..52da608424b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe088.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc index 7b58ed90cde..43f1b45ea1b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe088.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/test.desc index 07b98b60215..28d7dc52a1c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe088.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/test.desc index 9ac000d7be5..adec6d80215 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe088.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc index 328ddd41a5b..958c11f3794 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe088.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/test.desc index c399fad127b..9cc11b7e1cb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe088.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/test.desc index 18e838cdccc..d030ffe948b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe088.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc index 7983d733c5d..eaff3372225 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe088_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe088.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc index ce8ec9a043f..7b497c9ba69 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe089_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe089.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc index 059c96e3f8d..8338ba43bd3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe089_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe089.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc index eddd7eb49e2..5b02d6d75bc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe089_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe089.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc index fff5a46b718..b0bc6be3d7c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe089_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe089.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc index 0d7b6d5962f..ca8a6e56558 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe090_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe090.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc index 7562cc1d8a9..a8c6eb74857 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe090_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe090.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc index a4ad039aaee..7ee8d562a2d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe090_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe090.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc index a57fdb41923..b18b5346ccf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe090_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe090.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc index 530b7401d8f..cabbe7b377e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe091_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe091.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc index 3176e9aa7ac..7f121fea814 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe091_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe091.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc index 2f699a35599..c224762b25d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe091_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe091.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc index f24fcb7ca8c..f9a7b25e518 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe092_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe092.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc index b9944282a93..4504d434286 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe092_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe092.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc index e1958d0b305..99a8d2886a5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe092_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe092.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc index 53b7da949d8..b13aff99d3e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe092_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe092.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc index 9abf6fe7e5e..935b6668cdb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe093_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe093.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc index 7d1a8137163..4f0f6d69df6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe093_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe093.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc index 971c35c2974..1a375b2b3ef 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe093_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe093.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc index cfc42407268..0c23aaad143 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe093_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe093.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/test.desc index 5cfd91c0796..be0e16b99b8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe094.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/test.desc index 4c541f31ff4..a3d602d68c3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe094.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc index 5391097a684..edf22f58819 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe094.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/test.desc index 2997ac398ef..dccb401e4e4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe094.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/test.desc index 5dc55814738..d8f869045c6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe094.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc index 497e790fba7..462d4f46c5b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe094.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/test.desc index 3748dac032d..dc1a8703df6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe094.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/test.desc index adb805489c8..673f0239f75 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe094.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc index c1cdf6faca8..b37751f553f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe094_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe094.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc index 640a3dba6ee..1bb042d4130 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe095_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe095.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc index 4a4c285e1d6..4e3022a839b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe095_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe095.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc index 3116686b96a..7623eb5e240 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe095_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe095.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc index c982708c927..eb6f2ae586e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe095_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe095.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc index c7714fce4ac..18095f1309a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe096_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe096.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc index a1a28631154..a3edf15ff34 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe096_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe096.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc index 793a1add431..af2d9a80a48 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe096_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe096.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc index d28a4391c59..b109a53c1d4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe096_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe096.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc index 4dd802aa87b..5acacdceb08 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe097_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe097.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc index 07e53e064f2..3a4cfd0645c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe097_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe097.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc index 39b0ebda56f..6003381644e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe097_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe097.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc index bacfdb0cd8e..1f4060e230a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe097_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe097.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/test.desc index 64845039407..68905727e1c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe098.c POWER ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/test.desc index ab346753f5f..008da950336 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe098.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc index 346a5d2b7ff..b2e79d28dd9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe098.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/test.desc index c775f0fea7e..a578df3b1b6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe098.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/test.desc index 69f5312badd..e8d1c276e72 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe098.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc index 3cc4b7e9556..1cee814f8be 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe098.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/test.desc index 1f9d6e8c2f3..849246f9b42 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe098.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/test.desc index 8f820a01d5f..75f52c7b7d1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe098.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc index b5373446886..7399db33964 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe098.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/test.desc index 5a6fa261029..a8d75c9fa46 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe098.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/test.desc index f2ae1e23faf..01e5c9f3a0b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe098.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc index 9efb7a7b907..700d3ff8557 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe098_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe098.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc index 956b183ee28..990e097ec3c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe099_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe099.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc index b69ffa36b91..3d6aedd4c48 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe099_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe099.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc index 21e72157edf..0b2dbe24d32 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe099_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe099.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc index 3465691e3ee..f106fd1a3fd 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe099_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe099.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc index f7599489bee..42e922854b1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe100_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe100.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc index 2eda50d3359..569f55376f1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe100_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe100.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc index 9ffbc99cf5e..387747f9f44 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe100_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe100.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc index 4e026f8584b..907be5c38b5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe100_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe100.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc index f90aac6137d..b6b83d44de3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe101_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe101.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc index 78e5193a1d7..8a0c879fb32 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe101_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe101.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc index c69c5b40a23..63e551b3169 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe101_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe101.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc index 5610da67fae..b700116c35a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe101_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe101.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc index 75ad64e6eab..f01cf65042c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe102_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe102.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc index b3f40f345a5..390f7059b25 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe102_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe102.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc index c9804c4f474..bd6c31e2014 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe102_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe102.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc index 0ca52f08746..2e7c489674b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe102_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe102.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc index b76a8e01bd7..e70f9b0f087 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe103_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe103.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc index 666c530e203..4ea50fb9b8b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe103_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe103.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc index 2c1b2ac411b..4f7234ec4ed 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe103_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe103.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc index 6086ccde208..92713891917 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe104.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc index 4bf56540f6f..cf09e45e12e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe104.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc index dae23942aa6..e96911d73fa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe104.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/test.desc index 768a54731f8..c6a4a3dbad7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe104.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/test.desc index 68477c7a159..5e2c5936936 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe104.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc index db247ffe029..4c2d8f1fe8f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe104_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe104.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/test.desc index c5f5412693f..2ac38149396 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe105.c POWER ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/test.desc index d91c4c13ac1..c86eab1a8de 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe105.c POWER OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc index bc2f8faf5de..243c55d2116 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe105.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/test.desc index e54d3dc5944..a4ff6a2e2ca 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe105.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/test.desc index ff7603a6c72..8e232480ed7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe105.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc index 074ae2c8620..5b93c71f5ad 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe105.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/test.desc index b2fb757d028..bdc7363c052 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe105.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/test.desc index b9be9ad3028..ba5d2fa12e6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe105.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc index 2e07a7da3b7..ea805dbaa34 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe105.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/test.desc index 0dd0f0cc538..eb564c6d5b5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe105.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/test.desc index cedcb3ac33b..92df2a1b451 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe105.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc index e190de76717..e40a8a0b92b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe105_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe105.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc index 934d3fd0081..f074b0ab804 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe106_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe106.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc index 16cba2edf75..9ff7f73b503 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe106_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe106.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc index a3876b2eacc..67751735b3f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe106_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe106.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc index 79c395df093..4ced27ecebf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe106_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe106.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc index 301b2d1a46f..2f366cde8cf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe107_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe107.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc index df4d8a40562..ee27ebb3dff 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe107_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe107.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc index d1a07b7767a..f049ba5b5ce 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe107_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe107.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc index 9549b8a85aa..1c7c8e447a8 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe107_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe107.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc index c00de24820c..f235b095251 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe108_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe108.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc index e2e868621f7..7e639a83393 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe108_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe108.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc index ab0d7d1c614..d95dbb15e3b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe108_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe108.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc index 42f241fa242..c6e244965fa 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe109_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe109.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc index 13afbe8d631..63e85a11ae7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe109_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe109.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc index 994047696ed..0bef1b0a0c3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe109_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe109.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc index 35fdfeba5a9..34e7a4048e7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe110_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe110.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc index eba31f4cd63..41071f1b18b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe110_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe110.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc index b1bc875cad0..640861c577d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe110_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe110.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc index 37f916a5b47..f4c6b064bf9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe110_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe110.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc index e73f9530768..8fa80052686 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe111_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe111.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc index 21a6bd4656e..c9a55a70adf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe111_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe111.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc index 58961a9f994..5ec712b7c92 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe111_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe111.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc index b46f038ca1f..ee5099eecea 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe111_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe111.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/test.desc index 6e13d042d9f..ff426c9c86c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe112.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/test.desc index 90cf225f5d2..35a4943a9d5 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe112.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc index 751a8f32aa9..ca8aee64a02 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe112.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc index de673c24f26..e69f1153f39 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe112.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/test.desc index e052850767d..c1c3e4efde0 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe112.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/test.desc index c62075ecb2c..23d56339789 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe112.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc index 97cbfada017..9dd33fd224c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe112_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe112.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc index 370017bb267..1774ea43d10 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe113_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe113.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc index 80c78ff2dde..45794a19f0b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe113_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe113.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc index 7be8a62e323..cecb2ec4aaf 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe113_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe113.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc index 740dbeb8882..4aa76a1078a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe113_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe113.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc index 4fc68a0b387..5b1c5ba4ffc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe114_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe114.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc index a53facb14de..e3db1a20b80 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe114_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe114.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc index da571ee2600..15a3f261a77 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe114_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe114.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc index 954d0ea13eb..d100dc81d00 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe114_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe114.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc index ba1ab14bb84..6c2992f8e8c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe115.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc index b1d86064658..85688e1a23d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe115.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc index ee47a9a832a..100f3437982 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe115.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/test.desc index 35541503474..07cee4a4c66 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe115.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/test.desc index 5d6235ac88c..1157676c303 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe115.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc index 122b24e7d0f..3ce42268639 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe115_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe115.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/test.desc index 2a316aba0b2..607f53765a1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe116.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/test.desc index f27ea0984e3..e51664b644d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe116.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc index 70a5e707aee..eb86ba4be37 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe116.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/test.desc index 79714bf5f8b..0b07c6d870e 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe116.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/test.desc index 8de1e36318a..f4910b19da4 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe116.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc index 8d351dee7a0..d444c97de7a 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe116.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/test.desc index fa35ca6d703..592f3944d54 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe116.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/test.desc index 445d16d52a4..08b278fadad 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe116.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc index ec26cc0386e..588fc555652 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe116_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe116.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc index b2c03e2eef2..2b484912c5f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe117_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe117.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc index 7974dbf60ce..bbeabe9bd35 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe117_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe117.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc index 62eec179386..9a136251be1 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe117_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe117.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc index 7359a5e3127..1cdd5c28f67 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe117_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe117.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc index 21bd95bedd6..f9ae4859684 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe118_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe118.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc index f16e7baa6a8..73ceabc3f05 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe118_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe118.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc index 101641eddd1..00e320ae1dc 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe118_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe118.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc index ce3ae59d991..fdf25910c40 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe118_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe118.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc index 51fe1117846..f45a9f1f076 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe119_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe119.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc index a6f493cf30a..a010a795136 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe119_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe119.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc index a00b9932510..8990a21695b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe119_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe119.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc index f9b78fcf559..f6402747938 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe120_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe120.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc index f7040448a0e..1f70586820d 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe120_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe120.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc index 008e1b64f0d..e75e0a2280b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe120_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe120.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc index 11cd841c9ae..9a485ddd131 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe120_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe120.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc index 87c028a01eb..7463db1e9f9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe121_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe121.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc index 9d80ee45203..795f512006c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe121_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe121.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc index 2b965a8af86..31096414961 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe121_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe121.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc index 50e600aff24..f08355e1e02 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe121_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe121.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/test.desc index ae703b02acd..0d6282ecf36 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe122.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/test.desc index 5b5aa2e9a63..3efab77aac3 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe122.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc index d2730dc8a9f..3ee2b9fa4b7 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe122.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/test.desc index f6e1e713c12..f0e6b99e2bb 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe122.c RMO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/test.desc index 2e4ea63427d..bef78647eb2 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe122.c RMO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc index 4a9814a9ac5..36fe37458e9 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe122.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/test.desc index b161c81f816..5ed45ec6ef6 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe122.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/test.desc index 28dac12aa78..b8efd793411 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe122.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc index eb1c7c41363..2bbaf5279be 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe122_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe122.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc index 48266758668..98ba1232c4c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe123_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe123.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc index 43015d41cb7..1458cfaeb1f 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe123_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe123.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc index 23c85bb0e87..a184f75009b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe123_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe123.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc index 2c4288fdc03..af4e16e34ac 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe123_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe123.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc index be4ee10a4ae..c27fe04e49c 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe124_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe124.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc index 7252a7e1820..2a169991e63 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe124_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe124.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc index 0cee4a809ad..5cc773ec5db 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe124_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe124.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc index 9ad76577338..3f090bb0e05 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe124_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe124.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc index dbe91088e7f..73193325642 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe125_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe125.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc index e4fc876614b..0987fbe309b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe125_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe125.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc index a3caec063ec..2537aa2ba72 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe125_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe125.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc index f7f23ce3a27..0373c56713b 100644 --- a/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_safe125_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe125.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc index 436125cb706..4d30fd8c589 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin000.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc index 00ba03623da..b41ae6d3cf2 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc index 1adc0200bc9..dcc2cf7c010 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin000.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc index 111607ceec0..87272d8e3b3 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc index 66668062156..8b8dda47ca8 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin001.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc index 198e1b1598f..0fe1ad3f5f5 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc index 0056bf274ee..f1ac49c4197 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin001.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc index f8864031cef..f1330bbed8a 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc index ef7b2817868..91ea7031a85 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin002.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc index 57814cae997..887dda30747 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc index 537013569e6..c3fad802cdc 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc index 6baf04ec95b..6e9a9739346 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc index b79c266b3f6..39c0c4798b0 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin003.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc index 428ef064b6d..21a531f661d 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc index c996ba66fbb..277bd88f628 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin004.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc index 32ca932b93d..ccdf1f4c7b0 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc index 9abb459baf3..8002419d8c7 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin005.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc index 6964f83758c..7b5ff8260e4 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc index e1f806909a5..e1be9f60f1d 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc index 06562ccf0bd..237476f1f86 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc index 02e4e318096..d643d4e456e 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc index db94d51d0a6..55f0cb894a8 100644 --- a/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/ppc_thin007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc index 0ec537c7f3b..688c5458932 100644 --- a/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc index ec95e809e62..1dac8ef6eeb 100644 --- a/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc index 1a9743efc4e..b04a9dc6843 100644 --- a/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc index 39bbd65d6e0..8bf6217d80c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc index 6cb5af17a02..98d4d005d42 100644 --- a/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc index d4cf57eb9a2..b606c56d41b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc index 52e86ce4712..8ca3b6d929d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc index 9f3e52650b9..40757358064 100644 --- a/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc index 60704e50636..74eb5e30b96 100644 --- a/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc index d2175b027e3..5155b8c05da 100644 --- a/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix002.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc index b12703b5ec7..e6058e7e8c6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc index a7573404fda..329d87732bc 100644 --- a/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix002.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc index 37453f52608..88638d8a776 100644 --- a/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc index cbaf1f5df6f..7cb39c3818d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix003.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc index 5c4d84b4d8e..fae74862f7d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc index 12e9e6415c2..17c9a38f620 100644 --- a/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix003.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc index 10cfe7c771d..c914423aa1c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix004.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc index 91bc0682357..474f987bdf6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix004.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc index 1bae0d0805e..2b49fee3bff 100644 --- a/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix005.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc index de56f431048..f2c677e661a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix005.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc index 2c3d56ab607..f104124b2d9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix006.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc index 403264ab4e6..1166b561050 100644 --- a/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix006.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc index eaad9c8fcf0..25781d29878 100644 --- a/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix006.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc index 8bf566e00a2..29a34b87758 100644 --- a/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix006.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc index 625161240c1..3107902fc3f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix007.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc index 6b2a1d09744..c4b79e0da26 100644 --- a/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix007.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc index f3d68820d1a..e802722e61e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix008.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc index 6d0faddf377..75246bd684a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix008.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc index ef5ac20063d..49fcf514328 100644 --- a/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc index 29fc02695d5..ce88bc2d0fb 100644 --- a/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix009.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc index b5ac93db2ed..d1b915f712f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix009.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc index ecf2bf34073..43d9fa2bf65 100644 --- a/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix009.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc index 728314e7266..a700f9f02d0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix010_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix010.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc index 5f72f3596a5..28f14e45490 100644 --- a/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix010.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc index 07a28cff99a..36fab497cbe 100644 --- a/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix010.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc index b3325bcb05c..67000270d25 100644 --- a/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix010.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc index 1776d88eb40..1b30e44aa11 100644 --- a/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix011_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix011.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc index 561d3260dde..c5cfdda9dbe 100644 --- a/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix011.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc index 10c94491855..abd82c04c34 100644 --- a/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix011.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc index 8b2406975eb..3baf00c85ad 100644 --- a/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix011.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc index d8e8cae3cd9..2505fa41e57 100644 --- a/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix012_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix012.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc index 9eb53ceb95d..b7c9972044b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix012.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc index d011402be31..4002cb6ddc6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix012.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc index d49fa837c00..ad0fdb18653 100644 --- a/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix012.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc index baf26c1d5e9..e4055f2f25c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix013.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc index efae3171d1d..b5a466f8f9d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix013.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc index feb168f940f..b54f838e22c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix014.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc index c8cc0571098..963799e7ac6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix014.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc index e97d04e7c6a..0b34da8f617 100644 --- a/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix015_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix015.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc index 87a68a614db..506d5e4d2bc 100644 --- a/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix015.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc index 3389c90dff5..daf3dda9f6d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix015.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc index 7a891d91607..aeb62bbed4a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix015.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc index 33d5e75b814..792a5afc65f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix016_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix016.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc index 9af0390af84..44002f48881 100644 --- a/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix016_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix016.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc index e9c7f7bbeea..839b4764155 100644 --- a/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix016_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix016.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc index 96956927064..29474e7e7ca 100644 --- a/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix016_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix016.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc index 9faec720361..776a236ff1d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix017_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix017.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc index 05b09e60b75..3183309f17d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix017_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix017.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc index 8fb2893e303..a95e943eb2d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix018_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix018.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc index 1459ae9787a..875e8ad211d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix018_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix018.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc index 21a8775b899..eba2e71baed 100644 --- a/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix019_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix019.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc index 6f03d63ddd1..3604bab6baa 100644 --- a/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix019_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix019.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc index 232d4b83dba..92565ac5379 100644 --- a/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix019_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix019.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc index 2d823f38182..65e02bbba5a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix019_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix019.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc index 0e48f289f81..689eb2050a7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix020_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix020.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc index a74aa24a161..dd1309d6906 100644 --- a/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix020_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix020.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc index 8316ae9fb26..15a95bd8e9c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix021_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix021.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc index 323be74463d..8e6a18f9f26 100644 --- a/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix021_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix021.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc index b3f908c5afe..e5a43429805 100644 --- a/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix022_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix022.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc index 0559e71d2a5..bf54bea00fd 100644 --- a/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix022_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix022.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc index bf94ef2d463..dd299aa2424 100644 --- a/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix022_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix022.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc index 45844d8ce46..a5d8cc960a0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix022_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix022.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc index cb21524ae2a..2cd2e1da8cd 100644 --- a/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix023_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix023.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc index a05db841bb9..de0807b6a62 100644 --- a/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix023_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix023.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc index 05995a928da..58c499b4a84 100644 --- a/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix024_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix024.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc index 592435fc081..fb89af961e1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix024_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix024.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc index 5f6c57ac9ed..29c0f08ddd9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix024_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix024.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc index e65e7e2e029..038241b6e48 100644 --- a/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix024_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix024.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc index 63389cd735e..70984da8236 100644 --- a/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix025_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix025.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc index 83775d52aea..e97af937f2e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix025_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix025.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc index b48545df990..3aaaf439bd4 100644 --- a/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix025_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix025.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc index cc3299a6035..7875525e777 100644 --- a/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix025_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix025.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc index a8f7b1e4cf3..11b1766854c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix026_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix026.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc index b8fb3c46321..8e785b880bb 100644 --- a/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix026_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix026.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc index 5476f19efd3..2ee63731656 100644 --- a/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix027_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix027.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc index ed660be3f7b..8abb95d1574 100644 --- a/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix027_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix027.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc index b02a6626c4a..a4e71d69ace 100644 --- a/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix028_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix028.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc index fd87105e7a6..54d726aa65a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix028_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix028.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc index 24ec9c2ee96..7fed84d1282 100644 --- a/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix028_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix028.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc index 61b312d4bdd..24909316182 100644 --- a/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix028_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix028.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc index 225bbd4c242..2ff3c6549a4 100644 --- a/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix029_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix029.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc index 973c118864a..2c0b4deb61f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix029_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix029.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc index bd06e2f3d7c..2d65fe6ccc9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix030_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix030.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc index 34315f01c01..9d720462112 100644 --- a/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix030_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix030.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc index ef291a2cfa0..cb4e5de8fb6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix031_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix031.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc index dbdefaeb4e3..3e39b5a215d 100644 --- a/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix031_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix031.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc index 88b26bd69a7..74a8b261dec 100644 --- a/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix031_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix031.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc index a591f896007..db0c893fd2a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix031_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix031.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc index cd953b60ad3..b569d36b129 100644 --- a/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix032_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix032.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc index d0c45dbb450..f3da57920d1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix032_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix032.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc index 937eb7bd8d4..5291e34bb67 100644 --- a/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix032_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix032.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc index 07cdc189292..ec630b2243a 100644 --- a/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix032_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix032.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc index d547d324e7a..44c00b9d972 100644 --- a/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix033_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix033.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc index f43a8af65f5..cf1e24954f5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix033_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix033.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc index 112a4ded06b..ca20655accf 100644 --- a/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix033_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix033.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc index 4ff29b69bf7..e3b6c29897b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix033_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix033.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc index 5ae4b7cbd77..da510b849e1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix034_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix034.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc index f735ed3c27d..8150e1130bf 100644 --- a/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix034_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix034.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc index 5a5c0a04869..ed4df1478f5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix034_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix034.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc index 8670955b458..f4f7c9dde68 100644 --- a/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix034_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix034.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc index 46db04da132..3fd266c9f09 100644 --- a/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix035_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix035.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc index 0be5df00103..96ecf05902b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix035_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix035.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc index 532d23a74a6..9c3d1463bf0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix035_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix035.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc index 580f5e64abd..0671d33c6d8 100644 --- a/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix035_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix035.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc index a5b9dbbf5fc..04598307360 100644 --- a/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix036_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix036.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc index 7fba0cc9a8b..aeb5d856cbc 100644 --- a/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix036_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix036.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc index acbe9d72ada..a8bcc490761 100644 --- a/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix037_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix037.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc index 495f7df448d..7e8eef0131b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix037_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix037.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc index 577a55a9c7a..50cbaa11007 100644 --- a/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix038_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix038.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc index bf772ab0e7a..4c64c5f8a6f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix038_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix038.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc index c9cfe00c76d..da023a6f29c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix038_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix038.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc index 78df4b32e2f..b24fa3bd961 100644 --- a/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix038_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix038.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc index 62582e35206..20f2823c3ff 100644 --- a/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix039_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix039.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc index e1a98a67c94..b8b507c1c41 100644 --- a/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix039_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix039.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc index 524f0f88c62..cafc7b77ee7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix040_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix040.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc index 0d294af5901..d621d6e2a81 100644 --- a/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix040_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix040.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc index 2c9d4eadf75..37432b2cb48 100644 --- a/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix041_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix041.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc index bcd5edad2e3..b167d60afee 100644 --- a/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix041_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix041.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc index bb0346d9a23..d60de4104ea 100644 --- a/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix041_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix041.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc index dec56817bbf..d5f47a60cc5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix041_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix041.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc index 34e8903698f..68b5647813f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix042_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix042.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc index 897ea4c37a7..1383533df5e 100644 --- a/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix042_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix042.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc index 77079e38762..2738199de30 100644 --- a/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix042_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix042.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc index b6ada292ef0..15cd577261f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix042_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix042.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc index 9e069577f12..dd8d63eb6ec 100644 --- a/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix043_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix043.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc index 2ac3b0b63a2..99968bbf7a1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix043_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix043.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc index 1d688677b36..0a1fe1a08d2 100644 --- a/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix044_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix044.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc index 6425f9cc36a..aa04d8d7518 100644 --- a/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix044_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix044.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc index 329d92020a9..1d626cb5576 100644 --- a/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix045_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix045.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc index 67ee833012c..7ab6e4068f9 100644 --- a/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix045_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix045.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc index 8c1d06d0383..e7a706eb46b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix045_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix045.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc index c8efa4a947b..498e910d5b7 100644 --- a/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix045_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix045.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc index 4317e070c0e..907c634ed6b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix046_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix046.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc index 90b355a7a7f..d8aba520510 100644 --- a/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix046_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix046.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc index 9c56e46a225..c9b629c8045 100644 --- a/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix047_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix047.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc index f3cb4c8f921..a6d6b2a740b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix047_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix047.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc index 1fee7d0ccf7..710fe506629 100644 --- a/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix048_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix048.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc index 59cdd520b52..4220e126409 100644 --- a/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix048_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix048.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc index 8476902b2e9..63d6d2f2615 100644 --- a/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix048_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix048.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc index a77151309a9..4899dd7d624 100644 --- a/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix048_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix048.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc index afdc4a32fc5..cd0ce6465e5 100644 --- a/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix049_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix049.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc index 4e9a198f1b1..de9bb4c1017 100644 --- a/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix049_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix049.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc index 85d0bec9844..8153e72f9ea 100644 --- a/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix049_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix049.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc index 6e6bac3034a..6fc0f25ff89 100644 --- a/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix049_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix049.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc index f227b1ff364..a77fff050ba 100644 --- a/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix050_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix050.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc index 3e4d168b5ac..d8264fa8a52 100644 --- a/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix050_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix050.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc index 30148076304..ad90966a0c0 100644 --- a/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix051_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix051.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc index 53bfdc0dd3d..e67addb59bb 100644 --- a/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix051_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix051.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc index d20ea9e0ae3..9e484aaecfd 100644 --- a/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix052_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix052.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc index 7e2721b8b80..29c02d75dd1 100644 --- a/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix052_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix052.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc index 1260820cc22..64a84796202 100644 --- a/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix052_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix052.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc index 24cb0d9fb3f..f6f616d1d5c 100644 --- a/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix052_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix052.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc index c3915659d91..a907b255d3f 100644 --- a/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix053_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix053.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc index 00d9eda7298..0e0a2d382eb 100644 --- a/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix053_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix053.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc index a6c7553af8a..6c9f8472f72 100644 --- a/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix054_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix054.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc index 665d5556881..87eab48aa42 100644 --- a/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix054_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix054.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc index b4864b4233d..784fbbae8f6 100644 --- a/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix054_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix054.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc index c5a92a66811..c832b3031a4 100644 --- a/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix054_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix054.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc index f462d52bc15..4517ac5aa92 100644 --- a/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix055_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix055.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc index ff925ec911c..7f81e2f9221 100644 --- a/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix055_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix055.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc index 6c52646fba8..0acdd23b2df 100644 --- a/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix056_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix056.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc index d35eff11b85..ecd1bb8fcad 100644 --- a/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix056_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix056.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc index 751d1f1d876..0a06636bd2b 100644 --- a/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix056_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix056.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc index 04d773d37bb..c69b65d45b8 100644 --- a/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix056_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix056.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc index 560c9844ce5..580e5dfdc95 100644 --- a/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix057_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix057.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc index f583216897c..ffb2c92d954 100644 --- a/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_mix057_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk mix057.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc index 4df41b0d8ed..cc87e5a74bd 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc index 66763aa3e90..f503ceb5af2 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc index 035737ef01f..fb1ea8b980c 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc index 2e3191e6152..6c7700a1475 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr000.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc index 31bee5edb55..d80fba0078b 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc index 46466001aa1..a2bdbaafbe3 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc index c1bd41aedd6..0749acb53fe 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc index d2ca0cf6741..5eeefd5d0b6 100644 --- a/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_podwr001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk podwr001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc index 446e8af9955..31d487e034c 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc index 3740b76c451..bff79517654 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi000.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc index c3ce6eed5fd..0c009d7a955 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc index 08950f1e0ad..1e7a6685167 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc index 346976839cb..18d8c500a6a 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc index 837278af8e1..ec73710576a 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc index 401de42e4fd..da6de5b2a7b 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc index fa0c44cec0e..e5e26f9c63b 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi001.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc index 7fdef8f0914..222fdd4e68e 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi002.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc index aba2170589f..c6aa084cf36 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc index 8e16ba000b9..fc540648cce 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi002.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc index 55b0ccaf9da..7211e374905 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc index f19e39c2f75..bc03bb6131a 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc index 574ff8e7c10..5b700101be6 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi003.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc index d22fb0ab630..7ff306ce3b9 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc index 9e90684f9aa..b7aca90e4dc 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc index ab722b36ddb..9d5a7954f59 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi004.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc index 29b6de55bce..381d9919c04 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi004.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc index 37aa32ee150..299c2b08611 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi004.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc index 578408ae6ac..da1a7bcb7c3 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi004.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc index 6d927d8d772..4d11a224103 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc index 640ab66b5d0..def4b9cd9f4 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi005.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc index e801397333f..bcd9bc99926 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi005.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc index aeb422e5880..78c7be525e9 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi005.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc index 0a1f06b0d57..474d103516d 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi006.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc index 48c5a5a1af0..7136582cf4d 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi006.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc index c5077c76f43..5eb6fbb90d0 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi006.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc index 1c82f39898b..d41d84b830b 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi006.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc index b2f41cef03d..8e27681eb91 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi007.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc index 5599833f6aa..d5971cbcf00 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi007.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc index b2e6ef29ac5..b1c5f7544e2 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi007.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc index 282ccd8fe22..bd23a4ed835 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi007.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc index ac3da1a4e4a..79253c0c718 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi008.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc index 6e315ef575c..2598a37e79b 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi008.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc index ec4a339a8d1..0da1a89f525 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi008.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc index badc871e5f0..32c995f4699 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi008.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc index e28e6b07d70..4a3fb112332 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc index aae659ea5ef..db1ab9d63b1 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi009.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc index 156a62def10..fb376b27ffc 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi009.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc index eecd24df909..0d82e5d3b08 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi009.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc index fc2b0dd73d9..071eeb6303d 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi010_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi010.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc index 70a6ee7977d..87d0f347c06 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi010.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc index 27e61adc845..c99f0bdf922 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi010.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc index 0734f707127..93d5609331d 100644 --- a/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_rfi010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk rfi010.c TSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc index 42f28d33a0d..446ba2736f9 100644 --- a/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc index 68ce1dca9aa..11549c7ee2c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc index 66356ef4a48..0aec0d6756f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc index a7abcb9cef1..5100ea476ec 100644 --- a/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc index c87353a87c0..6709ff0ce61 100644 --- a/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc index 9feb21b14b7..19ac798bfb4 100644 --- a/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe001.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc index 72b62035c74..f7683b7ed4b 100644 --- a/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc index 84953281aad..a1bba8a2ac9 100644 --- a/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc index 44ba87d0c0e..9a24844d6a3 100644 --- a/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe002_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe002.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc index f13fb30ac89..61be0e6588b 100644 --- a/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe002.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc index ad8e5ce54d4..280cfba0e97 100644 --- a/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc index 1875fe78857..29e63a335b8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe002.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc index 0154f5b393f..c6c0b6c92ba 100644 --- a/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe003_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe003.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc index c08122aae63..18366460d00 100644 --- a/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe003_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe003.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc index ded70ae86ce..5aa21e1bd6f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe003_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe003.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc index d66e5d92de0..7f0378eaca4 100644 --- a/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe003_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe003.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc index 4e07a7a5e0e..079c6958587 100644 --- a/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe004_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe004.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc index c0c52b5a73a..89cbaf96c49 100644 --- a/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe004_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe004.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc index 8c3d0279463..9e745fd6baf 100644 --- a/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe004_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe004.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc index 777e21c9da3..57b1732d750 100644 --- a/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe004_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe004.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc index e4d3e0fc652..89592c71145 100644 --- a/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe005_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe005.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc index 65e2cf39ea7..d2bdc807267 100644 --- a/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe005_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe005.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc index f9f90b95182..ea774cad0b9 100644 --- a/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe005_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe005.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc index 2574999bd00..e82ea5b9069 100644 --- a/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe005_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe005.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc index 2fd83f67557..a9c6daeff75 100644 --- a/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe006_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe006.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc index 0e3dda55ab2..5f5e9dd5526 100644 --- a/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe006_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe006.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc index dbb4cfcb86e..3ae971b145c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe006_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe006.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc index d9a3f80d2fc..f7fc449e498 100644 --- a/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe006_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe006.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc index e8bc361a72c..4b055fd5b89 100644 --- a/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe007_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe007.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc index 6a74e7491ca..a1a9eabd4c6 100644 --- a/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe007_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe007.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc index 7b5ca465942..0c6d4eba522 100644 --- a/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe007_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe007.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc index 7aaca2e899f..ca2ef67fd1e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe007_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe007.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc index 197dcfb96d9..70be334fe8c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe008.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc index e75d525e175..ca8ccf1628d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe008.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc index 950a373c5bb..3a46182aaad 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe008.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/test.desc index beabc236e9b..112c7cb6695 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe008.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/test.desc index 11b8bc5c64c..9847607774e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe008.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc index a53a1342f30..05b97e56552 100644 --- a/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe008_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe008.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc index c27d5f5c324..898ba1386af 100644 --- a/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe009_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe009.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc index a3356e9b580..2edf34f9757 100644 --- a/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe009_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe009.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc index 5ee170cac0a..d00474e1f25 100644 --- a/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe009_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe009.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc index aa84f946d70..20f4c2522fb 100644 --- a/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe009_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe009.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc index 3828bda097a..a4402a7603e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe010.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc index 5e11a79ec3d..e0b741369c2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe010.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc index d0550ef13fb..eba29f20cd7 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe010.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/test.desc index cdc4cc32e9e..2d5f759b0e8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe010.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/test.desc index 65a46c66b0f..fcdfce46fbe 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe010.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc index 8597672d257..e39de8246c7 100644 --- a/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe010_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe010.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc index 2647a37a6fd..6a18b5c6686 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe011.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc index ffb3a4206e8..68add6f97d3 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe011.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc index 675fd21112c..16d46c4f58c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe011.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/test.desc index 7d65fe43297..327052719b7 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe011.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/test.desc index 2f81a3802ee..cb986e9147e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe011.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc index 52a9f083352..f97a17cdb1e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe011_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe011.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc index 2d2a267b9a1..d84ccaadab2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe012_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe012.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc index a603df4369a..12d542ee093 100644 --- a/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe012_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe012.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc index 57611807a4b..3ab50f03204 100644 --- a/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe012_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe012.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc index e3af18b3e32..ad85c5758f8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe012_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe012.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc index c43a3be97a3..9d25b23524d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe013.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc index 8bc62ab05ef..e7677a004b2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe013.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc index b074f17c339..0396b52bacd 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe013.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/test.desc index 2d42d0de892..335ee6e841a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe013.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/test.desc index f108af163bc..9faee213dec 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe013.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc index 9e353b096d1..e056d35390d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe013_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe013.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc index 1de0f9ca881..565aea7a8ed 100644 --- a/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe014_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe014.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc index 2828b41e5a0..bef1655ad77 100644 --- a/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe014_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe014.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc index a5bfbeec42d..e369bc42cc9 100644 --- a/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe014_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe014.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc index 4e17a710d23..109d05ff8b3 100644 --- a/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe014_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe014.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc index 2090e663c91..0bba08b34e9 100644 --- a/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe015_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe015.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc index 878b1e3c113..ec87d279723 100644 --- a/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe015_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe015.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc index 8653f1cebe5..cef668540ed 100644 --- a/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe015_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe015.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc index 2ec65817513..ed347c96452 100644 --- a/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe015_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe015.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc index b32c78b4bce..4f271b30818 100644 --- a/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe016_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe016.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc index 5ed02cde4f2..b872cd11f0e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe016_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe016.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc index e86e597a00d..4bcd8cc83ad 100644 --- a/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe016_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe016.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc index 5e9b5010b51..9212712263d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe016_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe016.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc index 6fa37ad494a..b2c5566a043 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe017.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc index 3b335e9fc44..d819c2f117b 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe017.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc index 3edb2e398e3..2e8802977b9 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe017.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/test.desc index 886f4a4160a..7ffcf518188 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe017.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/test.desc index 2ba2cca1b67..3ad964687a7 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe017.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc index ffbc5668de7..a799b931706 100644 --- a/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe017_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe017.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc index db88baf47e0..e10f750517d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe018_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe018.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc index cba79051b81..4018506f6c5 100644 --- a/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe018_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe018.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc index 7e551d6da33..fe35e18cdf7 100644 --- a/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe018_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe018.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc index 13acca85c12..ddb7a07a111 100644 --- a/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe018_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe018.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc index 9334883239f..97348792215 100644 --- a/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe019_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe019.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc index a6dec2ce8ef..368a9055463 100644 --- a/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe019_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe019.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc index 812105a91b1..f232fcbe935 100644 --- a/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe019_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe019.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc index 0aa65915d87..7e1629b7555 100644 --- a/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe019_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe019.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc index 4eb7a964017..517acdc8fcc 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe020.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/test.desc index f951cf9d904..ee530461f56 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/test.desc index 51801998550..6b747a3cabd 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc index 238298a0c11..49ac620403a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe020.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc index 268e62ed485..16ce6fa70b8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe020.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/test.desc index 91d6de0a43c..6a2c65ec248 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/test.desc index f20b431d91e..1f871736e97 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe020.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc index 695fe195823..ea924cb2e6f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe020_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe020.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc index fe295c225dd..7f5ffe3ca9b 100644 --- a/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe021_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe021.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc index 53564dfc9ca..529dc35866a 100644 --- a/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe021_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe021.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc index 3924d15b3dd..ccfa9d2b8e0 100644 --- a/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe021_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe021.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc index 99fd7723446..56cc9d26a9d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe021_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe021.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc index 719d0dabbdb..e07daa95387 100644 --- a/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe022_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe022.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc index 393cb3d44d8..91ed2c6c1cb 100644 --- a/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe022_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe022.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc index feba1a3298b..69911294933 100644 --- a/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe022_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe022.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc index f2103003983..0d657dae25f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe022_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe022.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc index 862265668e2..124f24585ba 100644 --- a/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe023_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe023.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc index 45a9ed605b3..14b01b41aed 100644 --- a/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe024_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe024.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc index e64c4d4cfe5..b43abe3f174 100644 --- a/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe024_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe024.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc index 022018cd4f1..b7b301377f4 100644 --- a/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe024_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe024.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc index 39ac8bbc0da..54120806b93 100644 --- a/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe024_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe024.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc index ba06b4b0077..84955e677a1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe025_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe025.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc index 807a34dbd70..d59bef036f1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe025_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe025.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc index f234bf73fbf..45c57b63fed 100644 --- a/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe025_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe025.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc index e6eed222c22..b0debbd1050 100644 --- a/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe025_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe025.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc index 22c5e9535ff..4a0bb20b060 100644 --- a/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe026_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe026.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc index 25ea166fe17..cf35488af3d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe026_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe026.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc index 57619f1ad36..1044d5aa6c1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe026_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe026.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc index d4beb230f0b..1c7da6913b4 100644 --- a/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe026_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe026.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc index 587c985b8de..e15b1cf5a45 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe027.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/test.desc index 9d0307cc9d0..4fca65fcdad 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_PSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe027.c PSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/test.desc index 2bf4642284b..016f9a1f5da 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe027.c PSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc index a2735820092..a9284f089cf 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe027.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc index 8eaf77f4625..1b45c87aedb 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe027.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/test.desc index eb0e643b02d..b4b54b2703c 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe027.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/test.desc index dfa5912dded..817086efe39 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe027.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc index 438aa4a7b2e..1187b029390 100644 --- a/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe027_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe027.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc index 55178c61837..0d54c7ca6a9 100644 --- a/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe028_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe028.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc index 1a23b29b121..17585802c3e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe028_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe028.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc index b8207104c6d..422426b58e2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe028_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe028.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc index 14e34d68644..c42c0ed8f56 100644 --- a/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe028_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe028.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc index b87f1fe35c8..7da77be02af 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe029.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc index 45e55f9bbe3..317c8f96e55 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe029.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc index ad1db76c80b..9f539f24bf1 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe029.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/test.desc index 99b2d45c8c2..8875def383d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe029.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/test.desc index 7051d2a6897..46061714822 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe029.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc index 34c9594e332..eb5e8c8f80f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe029_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe029.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc index a323251f7c0..3b5d85a3e7d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe030.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc index 3f0df39a7fd..9df0b2b5a12 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe030.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc index 9d75696aae0..7fca63b52ab 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe030.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/test.desc index ed5c39a4a50..076957db5b2 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe030.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/test.desc index 408bd0eab32..ba25571693e 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe030.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc index eb3169afe73..27c268eb230 100644 --- a/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe030_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe030.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc index 8b055ea0eb0..8624174b0b4 100644 --- a/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe031_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe031.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc index ff333fef5ca..811a259a82f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe031_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe031.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc index 4b0869ef1b2..11a9b938619 100644 --- a/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe031_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe031.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc index a5ca148946c..4440318cb3f 100644 --- a/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe031_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe031.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc index f0a2d558c48..3a1090c8d3d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe032_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe032.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc index 339a041ddde..e3b10806cca 100644 --- a/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe032_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe032.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc index 9123478c4fd..6bb1b6238fe 100644 --- a/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe032_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe032.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc index 432bb612d56..597de7ea345 100644 --- a/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe032_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe032.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc index 51f2e2f0c8d..e0c31786651 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe033.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc index 7d3aff0d079..68fe598aa57 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe033.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc index b1bfb661ec4..78df583ca37 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe033.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/test.desc index 9528e38951f..56ca9744221 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_TSO_ALL/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe033.c TSO ALL ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/test.desc index 9c953e3d3fd..7b8bfdf09e5 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPC/test.desc @@ -1,4 +1,4 @@ -THOROUGH +CORE safe033.c TSO OPC ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc index 6e9084ca047..98cfcc228be 100644 --- a/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe033_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe033.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc index 497d6f122d9..fc56a0c7b76 100644 --- a/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe034_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe034.c PSO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc index 63d412ef9c1..6edf397ad3d 100644 --- a/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe034_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe034.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc index f42dbf08322..82659f77b61 100644 --- a/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe034_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe034.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc index 7cc36f04611..8d71a481b29 100644 --- a/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe035_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe035.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc index d2d503f3d6f..811a5149ada 100644 --- a/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe035_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe035.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc index e3271875608..864bde5c4f5 100644 --- a/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe035_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe035.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc index 04c074f7692..53a1d169351 100644 --- a/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe036_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe036.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc index 77c3e613978..926e2537ee8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe036_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe036.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc index ea65c6e9786..889e120c442 100644 --- a/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe036_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe036.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc index 063d0ca2a50..118ce44c4e7 100644 --- a/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe036_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe036.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc index 8ed56e50dd8..6cf032c02b8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe037_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe037.c POWER OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc index 4e426c94c69..504686d97f8 100644 --- a/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe037_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe037.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc index 3d9d0784382..8c3f51ba045 100644 --- a/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe037_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe037.c RMO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc index aaed680a10f..7e77be47de3 100644 --- a/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_safe037_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk safe037.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc index b702c466ac1..e34e53f7703 100644 --- a/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin000_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin000.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc index 00ba03623da..b41ae6d3cf2 100644 --- a/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin000_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin000.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc index 273af5a3ebf..2702cb107f3 100644 --- a/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin000_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin000.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc index 111607ceec0..87272d8e3b3 100644 --- a/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin000_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin000.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc index ab66f9eb019..59baaccbadc 100644 --- a/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin001_POWER_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin001.c POWER OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc index 198e1b1598f..0fe1ad3f5f5 100644 --- a/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin001_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin001.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc index d1a67b3a2df..be8d0706a9a 100644 --- a/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin001_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin001.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc index f8864031cef..f1330bbed8a 100644 --- a/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin001_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin001.c TSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc index 57814cae997..887dda30747 100644 --- a/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin002_PSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin002.c PSO OPT ^EXIT=0$ diff --git a/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc index 4ae0d0c5550..8afa134c39a 100644 --- a/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin002_RMO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin002.c RMO OPT ^EXIT=10$ diff --git a/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc index 6baf04ec95b..6e9a9739346 100644 --- a/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc +++ b/regression/goto-instrument-wmm-core/x86_thin002_TSO_OPT/test.desc @@ -1,4 +1,4 @@ -THOROUGH glpk +CORE glpk thin002.c TSO OPT ^EXIT=0$ From c2451834b721ab68a3d2740ab96ef22ed4153065 Mon Sep 17 00:00:00 2001 From: Norbert Manthey Date: Thu, 18 Mar 2021 12:36:29 +0100 Subject: [PATCH 24/25] linux: add compilation script Script the steps required to build linux, so that they can also be executed locally. Signed-off-by: Norbert Manthey Signed-off-by: Norbert Manthey --- integration/linux/compile_linux.sh | 89 ++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100755 integration/linux/compile_linux.sh diff --git a/integration/linux/compile_linux.sh b/integration/linux/compile_linux.sh new file mode 100755 index 00000000000..62f8682443b --- /dev/null +++ b/integration/linux/compile_linux.sh @@ -0,0 +1,89 @@ +#!/bin/bash + +# Fail on errors +# set -e # not for now + +# Show steps we execute +set -x + +# This script needs to operate in the root directory of the CBMC repository +SCRIPT=$(readlink -e "$0") +readonly SCRIPT +SCRIPTDIR=$(dirname "$SCRIPT") +readonly SCRIPTDIR +cd "$SCRIPTDIR/../.." + +# Build CBMC tools +make -C src minisat2-download +make -C src CXX='ccache /usr/bin/g++' cbmc.dir goto-cc.dir goto-diff.dir -j$(nproc) + +# Get one-line-scan, if we do not have it already +[ -d one-line-scan ] || git clone https://github.com/awslabs/one-line-scan.git one-line-scan + +# Get Linux v5.10, if we do not have it already +[ -d linux_5_10 ] || git clone -b v5.10 --depth=1 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux_5_10 + +# Prepare compile a part of the kernel with CBMC via one-line-scan +ln -s goto-cc src/goto-cc/goto-ld +ln -s goto-cc src/goto-cc/goto-as +ln -s goto-cc src/goto-cc/goto-g++ + + +configure_linux () +{ + pushd linux_5_10 + + cat > kvm-config < Date: Thu, 4 Mar 2021 17:27:06 +0100 Subject: [PATCH 25/25] linuxci: test compiling linux Similarly to Xen, CBMC should be able to compile the linux kernel. As compiling the full kernel is very time consuming, and with CBMC also space consuming, only compile a core part all its dependencies, with the smalles configuration possible. For this core part, we select the KVM hypervisor. Once this is working, the configuration, as well as targets to be compiled can be increased. When the linuxci fails, we want to be able to easily understand the failure. The used one-line-scan tool already captures input files that cannot be handled by goto-cc. Hence, also archives these files for easy access in the web UI. Signed-off-by: Norbert Manthey --- .github/workflows/build-and-test-Linux.yaml | 53 +++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/build-and-test-Linux.yaml diff --git a/.github/workflows/build-and-test-Linux.yaml b/.github/workflows/build-and-test-Linux.yaml new file mode 100644 index 00000000000..e1c916dd4f5 --- /dev/null +++ b/.github/workflows/build-and-test-Linux.yaml @@ -0,0 +1,53 @@ +name: Build Linux partially with CPROVER tools + +on: + pull_request: + branches: + - '**' + +jobs: + CompileLinux: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - name: Install Packages + env: + # This is needed in addition to -yq to prevent apt-get from asking for + # user input + DEBIAN_FRONTEND: noninteractive + run: | + sudo apt-get update + sudo apt-get install --no-install-recommends -y g++ flex bison cmake ninja-build maven jq libxml2-utils dpkg-dev ccache + sudo apt-get install --no-install-recommends -y libssl-dev libelf-dev libudev-dev libpci-dev libiberty-dev autoconf + sudo apt-get install --no-install-recommends -y gawk jq + + - name: Prepare ccache + uses: actions/cache@v2 + with: + path: .ccache + key: ${{ runner.os }}-20.04-make-${{ github.ref }}-${{ github.sha }}-KERNEL + restore-keys: | + ${{ runner.os }}-20.04-make-${{ github.ref }} + ${{ runner.os }}-20.04-make + - name: ccache environment + run: | + echo "CCACHE_BASEDIR=$PWD" >> $GITHUB_ENV + echo "CCACHE_DIR=$PWD/.ccache" >> $GITHUB_ENV + - name: Zero ccache stats and limit in size + run: ccache -z --max-size=500M + - name: Build CBMC tools + run: | + make -C src minisat2-download + make -C src CXX='ccache /usr/bin/g++' cbmc.dir goto-cc.dir goto-diff.dir -j2 + - name: Print ccache stats + run: ccache -s + + - name: Run (Docker Based) Linux Build test + run: integration/linux/compile_linux.sh + + - uses: actions/upload-artifact@v2 + with: + name: CPROVER-faultyInput + path: CPROVER/faultyInput/*